数学的根探索アルゴリズムのクラス
数学 、特に 数値解析 において 、 ハウスホルダー法は、ある次数 d + 1 までの連続導関数を持つ 1 つの実変数の関数に使用される 根探索アルゴリズム の一種です。これらの各方法は、方法の 次数 と呼ばれる 数値 d によって特徴付けられます。このアルゴリズムは反復的で、 収束率 は d + 1 です。
これらの方法はアメリカの数学者 アルストン・スコット・ハウスホルダー にちなんで名付けられました。
方法
ハウスホルダー法は方程式 f ( x ) = 0 を解く数値アルゴリズムである。この場合、関数 f は 1つの実変数の関数でなければならない。この方法は一連の反復からなる。
x
ん
+
1
=
x
ん
+
d
(
1
/
ふ
)
(
d
−
1
)
(
x
ん
)
(
1
/
ふ
)
(
d
)
(
x
ん
)
{\displaystyle x_{n+1}=x_{n}+d\;{\frac {\left(1/f\right)^{(d-1)}(x_{n})}{\left(1/f\right)^{(d)}(x_{n})}}}
初期推測値 x 0 から始まる。 [1]
fが d + 1 回連続的に微分可能な関数 であり、 aが f の零点であるがその導関数の零点ではない 場合 、 a の近傍において、反復 x n は次式を満たす: [ 要出典 ]
|
x
ん
+
1
−
1つの
|
≤
け
⋅
|
x
ん
−
1つの
|
d
+
1
{\displaystyle |x_{n+1}-a|\leq K\cdot {|x_{n}-a|}^{d+1}}
、一部の人にとっては
け
>
0.
{\displaystyle K>0.\!}
これは、初期推定が十分に近い場合、反復はゼロに収束し、収束は d + 1 次またはそれより高くなることを意味します。さらに、 に十分近い場合 、 ある に対して となることがよくあります 。特に、
x
ん
+
1
−
1つの
≈
C
(
x
ん
−
1つの
)
d
+
1
{\displaystyle x_{n+1}-a\approx C(x_{n}-a)^{d+1}}
C
≠
0
{\displaystyle C\neq 0}
d + 1 が偶数で C > 0 の場合 、 aへの収束は a より大きい値から発生します 。
d + 1 が偶数で C < 0 の場合 、 aへの収束は a 未満の値から発生します 。
d + 1 が奇数で C > 0 の場合 、 a への収束は開始側から行われます。
d + 1 が奇数で C < 0 の場合、 a への収束は 交互に行われます。
これらの方法は収束順序は良いものの、精度の向上が大きなd に対する労力の増加に見合わないため、あまり使用されていません 。 オストロフスキー指数は、 反復回数ではなく関数評価回数で誤差の減少を表します。 [2]
多項式の場合、ホーナー法を 使用して x n における f の 最初の d 導関数を評価するには、 d + 1 回 の多項式評価が 必要です 。 n回の反復で n ( d + 1) 回の評価 を行うと、誤差指数は ( d + 1) n になるため、 1 回の関数評価の指数は 、 d = 1、2、3、4 の場合に数値的に 1.4142、1.4422、1.4142、1.3797 となり 、 それ 以降 は 低下します。この基準により、 d = 2 の場合 ( ハレー法) が d の最適値です 。
d
+
1
d
+
1
{\displaystyle {\sqrt[{d+1}]{d+1}}}
一般的な関数の場合、自動微分 のテイラー演算を使用した導関数の評価には、 ( d + 1)( d + 2)/2 回 の関数評価と同等の計算が必要です 。1 回の関数評価で、誤差は の指数だけ減少します。これは 、 ニュートン法の場合は 、 ハレー法の場合は で、高次の方法では 1 または線形収束に向かって減少します。
d
+
1
(
d
+
1
)
(
d
+
2
)
2
{\displaystyle {\sqrt[{\frac {(d+1)(d+2)}{2}}]{d+1}}}
2
3
≈
1.2599
{\displaystyle {\sqrt[{3}]{2}}\approx 1.2599}
3
6
≈
1.2009
{\displaystyle {\sqrt[{6}]{3}}\approx 1.2009}
モチベーション
最初のアプローチ
f が a の近傍で解析的で 、 f ( a ) = 0 で あるとします 。すると、 f は a で テイラー級数 を持ち 、その定数項はゼロになります。この定数項がゼロなので、関数 f ( x ) / ( x − a )は a でテイラー級数を持ち 、 f ′ ( a ) ≠ 0 のとき、その定数項はゼロになりません。その定数項がゼロでないため、逆数 ( x − a ) / f ( x )は a でテイラー級数を持ち 、 と書き 、その定数項 c 0 は ゼロになりません。そのテイラー級数を使用すると、 と書くことができます。
その d 次導関数
を計算すると、 k = 1, ..., d の項は、 大きな O 表記法
を使用して 、都合よく消える
ことに注意してください 。したがって、比
aが x に最も近い f の零点である
場合、 d が 無限大になって
a に向かう につれて、2 番目の因子は 1 に向かいます 。
∑
け
=
0
+
∞
c
け
(
x
−
1つの
)
け
け
!
{\displaystyle \sum _{k=0}^{+\infty}{\frac {c_{k}(xa)^{k}}{k!}}}
1
ふ
=
c
0
x
−
1つの
+
∑
け
=
1
+
∞
c
け
(
x
−
1つの
)
け
−
1
け
(
け
−
1
)
!
。
{\displaystyle {\frac {1}{f}}={\frac {c_{0}}{xa}}+\sum _{k=1}^{+\infty }{\frac {c_{k}(xa)^{k-1}}{k~(k-1)!}}\,.}
(
1
ふ
)
(
d
)
=
(
−
1
)
d
d
!
c
0
(
x
−
1つの
)
d
+
1
+
∑
け
=
d
+
1
+
∞
c
け
(
x
−
1つの
)
け
−
d
−
1
け
(
け
−
d
−
1
)
!
{\displaystyle \left({\frac {1}{f}}\right)^{(d)}={\frac {(-1)^{d}d!~c_{0}}{(x-a)^{d+1}}}+\sum _{k=d+1}^{+\infty }{\frac {c_{k}(x-a)^{k-d-1}}{k~(k-d-1)!}}}
=
(
−
1
)
d
d
!
c
0
(
x
−
a
)
d
+
1
(
1
+
1
(
−
1
)
d
d
!
c
0
∑
k
=
d
+
1
+
∞
c
k
(
x
−
a
)
k
k
(
k
−
d
−
1
)
!
)
{\displaystyle ={\frac {(-1)^{d}d!~c_{0}}{(x-a)^{d+1}}}\left(1+{\frac {1}{(-1)^{d}d!~c_{0}}}\sum _{k=d+1}^{+\infty }{\frac {c_{k}(x-a)^{k}}{k~(k-d-1)!}}\right)}
=
(
−
1
)
d
d
!
c
0
(
x
−
a
)
d
+
1
(
1
+
O
(
(
x
−
a
)
d
+
1
)
)
,
{\displaystyle ={\frac {(-1)^{d}d!~c_{0}}{(x-a)^{d+1}}}\left(1+{\mathcal {O}}\left((x-a)^{d+1}\right)\right)\,,}
d
(
1
/
f
)
(
d
−
1
)
(
1
/
f
)
(
d
)
=
d
(
−
1
)
d
−
1
(
d
−
1
)
!
c
0
(
−
1
)
d
d
!
c
0
(
x
−
a
)
(
1
+
O
(
(
x
−
a
)
d
)
1
+
O
(
(
x
−
a
)
d
+
1
)
)
{\displaystyle d~{\frac {(1/f)^{(d-1)}}{(1/f)^{(d)}}}=d~{\frac {(-1)^{d-1}(d-1)!~c_{0}}{(-1)^{d}d!~c_{0}}}(x-a)\left({\frac {1+{\mathcal {O}}\left((x-a)^{d}\right)}{1+{\mathcal {O}}\left((x-a)^{d+1}\right)}}\right)}
=
−
(
x
−
a
)
(
1
+
O
(
(
x
−
a
)
d
)
)
.
{\displaystyle =-(x-a)\left(1+{\mathcal {O}}\left((x-a)^{d}\right)\right)\,.}
x
+
d
(
1
/
f
)
(
d
−
1
)
(
1
/
f
)
(
d
)
{\displaystyle x+d~{\frac {(1/f)^{(d-1)}}{(1/f)^{(d)}}}}
2番目のアプローチ
x = a が 単根であると 仮定します。すると、 x = a の近くで、 (1/ f )( x ) は 有理型関数 になります。 テイラー展開が あると仮定します 。
(
1
/
f
)
(
x
)
=
∑
d
=
0
∞
(
1
/
f
)
(
d
)
(
b
)
d
!
(
x
−
b
)
d
{\displaystyle (1/f)(x)=\sum _{d=0}^{\infty }{\frac {(1/f)^{(d)}(b)}{d!}}(x-b)^{d}}
f の他のどの零点よりも a に近い 点 b の 周りを回ります。 ケーニッヒの定理 により、次の式が得られます。
a
−
b
=
lim
d
→
∞
(
1
/
f
)
(
d
−
1
)
(
b
)
(
d
−
1
)
!
(
1
/
f
)
(
d
)
(
b
)
d
!
=
d
(
1
/
f
)
(
d
−
1
)
(
b
)
(
1
/
f
)
(
d
)
(
b
)
.
{\displaystyle a-b=\lim _{d\rightarrow \infty }{\frac {\frac {(1/f)^{(d-1)}(b)}{(d-1)!}}{\frac {(1/f)^{(d)}(b)}{d!}}}=d{\frac {(1/f)^{(d-1)}(b)}{(1/f)^{(d)}(b)}}.}
これらは、ハウスホルダーの反復が収束性の高い反復である可能性を示唆しています。実際の収束の証明もこれらのアイデアに基づいています。
低次の方法
1次のハウスホルダー法は ニュートン法 とまったく同じです。なぜなら、
x
n
+
1
=
x
n
+
1
(
1
/
f
)
(
x
n
)
(
1
/
f
)
(
1
)
(
x
n
)
=
x
n
+
1
f
(
x
n
)
⋅
(
−
f
′
(
x
n
)
f
(
x
n
)
2
)
−
1
=
x
n
−
f
(
x
n
)
f
′
(
x
n
)
.
{\displaystyle {\begin{array}{rl}x_{n+1}=&x_{n}+1\,{\frac {\left(1/f\right)(x_{n})}{\left(1/f\right)^{(1)}(x_{n})}}\\[.7em]=&x_{n}+{\frac {1}{f(x_{n})}}\cdot \left({\frac {-f'(x_{n})}{f(x_{n})^{2}}}\right)^{-1}\\[.7em]=&x_{n}-{\frac {f(x_{n})}{f'(x_{n})}}.\end{array}}}
2次のハウスホルダー法では 、恒等式
が
(
1
/
f
)
′
(
x
)
=
−
f
′
(
x
)
f
(
x
)
2
{\displaystyle \textstyle (1/f)'(x)=-{\frac {f'(x)}{f(x)^{2}}}\ }
そして
(
1
/
f
)
″
(
x
)
=
−
f
″
(
x
)
f
(
x
)
2
+
2
f
′
(
x
)
2
f
(
x
)
3
{\displaystyle \textstyle \ (1/f)''(x)=-{\frac {f''(x)}{f(x)^{2}}}+2{\frac {f'(x)^{2}}{f(x)^{3}}}}
結果として
x
n
+
1
=
x
n
+
2
(
1
/
f
)
′
(
x
n
)
(
1
/
f
)
″
(
x
n
)
=
x
n
+
−
2
f
(
x
n
)
f
′
(
x
n
)
−
f
(
x
n
)
f
″
(
x
n
)
+
2
f
′
(
x
n
)
2
=
x
n
−
f
(
x
n
)
f
′
(
x
n
)
f
′
(
x
n
)
2
−
1
2
f
(
x
n
)
f
″
(
x
n
)
=
x
n
+
h
n
1
1
+
1
2
(
f
″
/
f
′
)
(
x
n
)
h
n
.
{\displaystyle {\begin{array}{rl}x_{n+1}=&x_{n}+2\,{\frac {\left(1/f\right)'(x_{n})}{\left(1/f\right)''(x_{n})}}\\[1em]=&x_{n}+{\frac {-2f(x_{n})\,f'(x_{n})}{-f(x_{n})f''(x_{n})+2f'(x_{n})^{2}}}\\[1em]=&x_{n}-{\frac {f(x_{n})f'(x_{n})}{f'(x_{n})^{2}-{\tfrac {1}{2}}f(x_{n})f''(x_{n})}}\\[1em]=&x_{n}+h_{n}\;{\frac {1}{1+{\frac {1}{2}}(f''/f')(x_{n})\,h_{n}}}.\end{array}}}
最後の行は、 点におけるニュートン反復法の更新です 。この行は、単純なニュートン法との違いがどこにあるかを示すために追加されました。
h
n
=
−
f
(
x
n
)
f
′
(
x
n
)
{\displaystyle h_{n}=-{\tfrac {f(x_{n})}{f'(x_{n})}}}
x
n
{\displaystyle x_{n}}
3次法は 1/ fの3次導関数の恒等式から得られる。
(
1
/
f
)
‴
(
x
)
=
−
f
‴
(
x
)
f
(
x
)
2
+
6
f
′
(
x
)
f
″
(
x
)
f
(
x
)
3
−
6
f
′
(
x
)
3
f
(
x
)
4
{\displaystyle \textstyle (1/f)'''(x)=-{\frac {f'''(x)}{f(x)^{2}}}+6{\frac {f'(x)\,f''(x)}{f(x)^{3}}}-6{\frac {f'(x)^{3}}{f(x)^{4}}}}
そして、式は次のようになる。
x
n
+
1
=
x
n
+
3
(
1
/
f
)
″
(
x
n
)
(
1
/
f
)
‴
(
x
n
)
=
x
n
−
6
f
(
x
n
)
f
′
(
x
n
)
2
−
3
f
(
x
n
)
2
f
″
(
x
n
)
6
f
′
(
x
n
)
3
−
6
f
(
x
n
)
f
′
(
x
n
)
f
″
(
x
n
)
+
f
(
x
n
)
2
f
‴
(
x
n
)
=
x
n
+
h
n
1
+
1
2
(
f
″
/
f
′
)
(
x
n
)
h
n
1
+
(
f
″
/
f
′
)
(
x
n
)
h
n
+
1
6
(
f
‴
/
f
′
)
(
x
n
)
h
n
2
{\displaystyle {\begin{array}{rl}x_{n+1}=&x_{n}+3\,{\frac {\left(1/f\right)''(x_{n})}{\left(1/f\right)'''(x_{n})}}\\[1em]=&x_{n}-{\frac {6f(x_{n})\,f'(x_{n})^{2}-3f(x_{n})^{2}f''(x_{n})}{6f'(x_{n})^{3}-6f(x_{n})f'(x_{n})\,f''(x_{n})+f(x_{n})^{2}\,f'''(x_{n})}}\\[1em]=&x_{n}+h_{n}{\frac {1+{\frac {1}{2}}(f''/f')(x_{n})\,h_{n}}{1+(f''/f')(x_{n})\,h_{n}+{\frac {1}{6}}(f'''/f')(x_{n})\,h_{n}^{2}}}\end{array}}}
等々。
例
ニュートンがニュートン・ラプソン・シンプソン法で解いた最初の問題は、多項式方程式でした 。 彼は、2に近い解があるはずだと気づきました。y = x + 2 を置き換えると、方程式は次のように変形されます。
y
3
−
2
y
−
5
=
0
{\displaystyle y^{3}-2y-5=0}
0
=
f
(
x
)
=
−
1
+
10
x
+
6
x
2
+
x
3
{\displaystyle 0=f(x)=-1+10x+6x^{2}+x^{3}}
。
逆関数のテイラー級数は次のように始まる。
1
/
f
(
x
)
=
−
1
−
10
x
−
106
x
2
−
1121
x
3
−
11856
x
4
−
125392
x
5
−
1326177
x
6
−
14025978
x
7
−
148342234
x
8
−
1568904385
x
9
−
16593123232
x
10
+
O
(
x
11
)
{\displaystyle {\begin{array}{rl}1/f(x)=&-1-10\,x-106\,x^{2}-1121\,x^{3}-11856\,x^{4}-125392\,x^{5}\\&-1326177\,x^{6}-14025978\,x^{7}-148342234\,x^{8}-1568904385\,x^{9}\\&-16593123232\,x^{10}+O(x^{11})\end{array}}}
x = 0 でさまざまな次数のハウスホルダー法を適用した結果も、後者の べき級数 の隣接する係数を割ることによって得られます 。最初の次数については、1 回の反復ステップだけで次の値が得られます。たとえば、3 番目の次数の場合、
。
x
1
=
0.0
+
106
/
1121
=
0.09455842997324
{\displaystyle x_{1}=0.0+106/1121=0.09455842997324}
ご覧のとおり、各順序 d には d 桁 より少し多い正しい小数点以下の桁があります。正しい解の最初の 100 桁は、 0.09455 14815 42326 59148 23865 40579 30296 38573 06105 62823 91803 04128 52904 53121 89983 48366 71462 67281 77715 77578 です。
最低順位の値
を計算してみましょう。
x
2
,
x
3
,
x
4
{\displaystyle x_{2},x_{3},x_{4}}
f
=
−
1
+
10
x
+
6
x
2
+
x
3
{\displaystyle f=-1+10x+6x^{2}+x^{3}}
f
′
=
10
+
12
x
+
3
x
2
{\displaystyle f^{\prime }=10+12x+3x^{2}}
f
′
′
=
12
+
6
x
{\displaystyle f^{\prime \prime }=12+6x}
f
′
′
′
=
6
{\displaystyle f^{\prime \prime \prime }=6}
そして次の関係を用いると、
1次注文;
x
i
+
1
=
x
i
−
f
(
x
i
)
/
f
′
(
x
i
)
{\displaystyle x_{i+1}=x_{i}-f(x_{i})/f^{\prime }(x_{i})}
2番目の順序;
x
i
+
1
=
x
i
−
2
f
f
′
/
(
2
f
′
2
−
f
f
′
′
)
{\displaystyle x_{i+1}=x_{i}-2ff^{\prime }/(2{f^{\prime }}^{2}-ff^{\prime \prime })}
3番目の順序;
x
i
+
1
=
x
i
−
(
6
f
f
′
2
−
3
f
2
f
′
′
)
/
(
6
f
′
3
−
6
f
f
′
f
′
′
+
f
2
f
′
′
′
)
{\displaystyle x_{i+1}=x_{i}-(6f{f^{\prime }}^{2}-3f^{2}f^{\prime \prime })/(6{f^{\prime }}^{3}-6ff^{\prime }f^{\prime \prime }+f^{2}f^{\prime \prime \prime })}
導出
ハウスホルダー法の正確な導出は、 関数の次数 d + 1 の パデ近似から始まり、線形 分子 を持つ近似式が選択されます。これを達成すると、次の近似の更新は分子の一意のゼロを計算することによって行われます。
パデ近似は次の式で表される。
f
(
x
+
h
)
=
a
0
+
h
b
0
+
b
1
h
+
⋯
+
b
d
−
1
h
d
−
1
+
O
(
h
d
+
1
)
.
{\displaystyle f(x+h)={\frac {a_{0}+h}{b_{0}+b_{1}h+\cdots +b_{d-1}h^{d-1}}}+O(h^{d+1}).}
有理関数は でゼロになります 。
h
=
−
a
0
{\displaystyle h=-a_{0}}
次数d のテイラー多項式が 関数 fに依存する d + 1 個の 係数を持つのと同様に 、パデ近似も f とその導関数に依存する d + 1 個の 係数を持ちます。より正確には、どのパデ近似でも、分子と分母の多項式の次数が近似式の次数に加算される必要があります。したがって、が 成り立つ必要があります。
b
d
=
0
{\displaystyle b_{d}=0}
ユークリッドのアルゴリズムを 使用して、 f のテイラー多項式からパデ近似を決定することもできます。しかし、 1/ f のテイラー多項式から始める方 が短く、与えられた式に直接つながります。
(
1
/
f
)
(
x
+
h
)
=
(
1
/
f
)
(
x
)
+
(
1
/
f
)
′
(
x
)
h
+
⋯
+
(
1
/
f
)
(
d
−
1
)
(
x
)
h
d
−
1
(
d
−
1
)
!
+
(
1
/
f
)
(
d
)
(
x
)
h
d
d
!
+
O
(
h
d
+
1
)
{\displaystyle (1/f)(x+h)=(1/f)(x)+(1/f)'(x)h+\cdots +(1/f)^{(d-1)}(x){\frac {h^{d-1}}{(d-1)!}}+(1/f)^{(d)}(x){\frac {h^{d}}{d!}}+O(h^{d+1})}
は 、望ましい有理関数の逆関数に等しくなければならない 。
a
0
+
h
{\displaystyle a_{0}+h}
h
d
{\displaystyle h^{d}}
0
=
b
d
=
a
0
(
1
/
f
)
(
d
)
(
x
)
1
d
!
+
(
1
/
f
)
(
d
−
1
)
(
x
)
1
(
d
−
1
)
!
{\displaystyle 0=b_{d}=a_{0}(1/f)^{(d)}(x){\frac {1}{d!}}+(1/f)^{(d-1)}(x){\frac {1}{(d-1)!}}}
。
さて、最後の方程式を分子の
ゼロについて解くと、次のようになります。
h
=
−
a
0
{\displaystyle h=-a_{0}}
h
=
−
a
0
=
1
(
d
−
1
)
!
(
1
/
f
)
(
d
−
1
)
(
x
)
1
d
!
(
1
/
f
)
(
d
)
(
x
)
=
d
(
1
/
f
)
(
d
−
1
)
(
x
)
(
1
/
f
)
(
d
)
(
x
)
{\displaystyle {\begin{aligned}h&=-a_{0}={\frac {{\frac {1}{(d-1)!}}(1/f)^{(d-1)}(x)}{{\frac {1}{d!}}(1/f)^{(d)}(x)}}\\&=d\,{\frac {(1/f)^{(d-1)}(x)}{(1/f)^{(d)}(x)}}\end{aligned}}}
。
これは反復式を意味する。
x
n
+
1
=
x
n
+
d
(
1
/
f
)
(
d
−
1
)
(
x
n
)
(
1
/
f
)
(
d
)
(
x
n
)
{\displaystyle x_{n+1}=x_{n}+d\;{\frac {\left(1/f\right)^{(d-1)}(x_{n})}{\left(1/f\right)^{(d)}(x_{n})}}}
。
ニュートン法との関係
実数値関数 f ( x )に適用されるハウスホルダー法は、関数 g ( x ) に適用されるニュートン法と同じである 。
x
n
+
1
=
x
n
−
g
(
x
n
)
g
′
(
x
n
)
{\displaystyle x_{n+1}=x_{n}-{\frac {g(x_{n})}{g'(x_{n})}}}
と
g
(
x
)
=
|
(
1
/
f
)
(
d
−
1
)
|
−
1
/
d
.
{\displaystyle g(x)=\left|(1/f)^{(d-1)}\right|^{-1/d}\,.}
特に、 d = 1 の 場合はニュートン法が修正されず、 d = 2 の 場合はハレー法が適用されます。
参考文献
^ ハウスホルダー、アルストン・スコット (1970)。 単一非線形方程式の数値的処理 。マグロウヒル。p. 169。ISBN 0-07-030465-3 。
^ Ostrowski, AM (1966). 方程式と方程式系の解法 。純粋および応用数学。第9巻(第2版)。ニューヨーク:アカデミックプレス。
外部リンク
Pascal Sebah と Xavier Gourdon (2001)。「ニュートン法と高次反復」。 注意 :このリンクの PostScript バージョンを使用してください。Web サイト バージョンは正しくコンパイルされていません。