● 講義資料
▼ 講義予定
•
スツルムの二分法•
収束の加速● 前回の講義のまとめ
▼ ニュートン法について
• √
2
に代表される,代数方程式の解の近似値を求める方法として,以下のニュートン法が広く 知られている.•
区間[a, b]
上で定義された実数値C 2 -級関数 f (x)
が, [a, b]上で単調増加かつ下に凸であり,f (a) < 0, f (b) > 0
を満たしていると仮定する. この時,x 0 = b, x n+1 = x n − f (x n )/f ′ (x n )
により定義された数列{ x n }
は,単調減少かつ下に有界であり, [a, b]上のf (x) = 0
のただひ とつの解α
に収束する. さらに,ある定数M > 0
が存在して,| x n +1 − α | ≤ M | x n − α | 2 が成り立つ.
•
ニュートン法は以下の「逐次近似」の一例と考えられる.• F : R −→ R
をC 2 -級関数とする.
この時,x n+1 = F (x n )
によって数列
{ x n }
を定義して,写像F
の固定点(α = F (α)
を満たす点)を近似する方法を 逐次近似と呼ぶ.•
関数f (x)
に対するニュートン法x n+1 = x n − f (x n )/f ′ (x n )
は,F(x) = x − f (x)/f ′ (x)
と 定義した逐次近似である.• R
のある近傍U
と正定数L < 1
が存在して,任意のx, y ∈ U
に対して| F (x) − F (y) | ≤ L | x − y |
を満たすとき,F
はU
上で縮小写像であると言う.• C 2 -級関数 F : R −→ R
が,U ⊂ R
上で縮小写像であるとき,F
はU
にただひとつの固定点 を持つ(縮小写像の原理).証明は,
x 0 ∈ U , x n +1 = F (x n )
で定義した点列{ x n }
がコーシー列となることを示し,その 収束先が固定点となることを示せばよい.• C 2 -級関数 F : R −→ R
に対する逐次近似x n +1 = F (x n )
の固定点α
があらかじめわかって いる時を考える. この時,| F ′ (α) | < 1
が成り立てば,α
の近傍でF
は縮小写像となる. 特に,•
逐次近似x n+1 = F (x n )
がα
に収束すると仮定する. この時,ǫ n = | x n − α |
はǫ n+1 ≤ | F ′ (α) | ǫ n + 1
2 | F ′′ (α) | ǫ 2 n + O(ǫ 3 n )
をみたす. 証明は,α
でF
を3次までテイラー展開して計算すればよい.•
ニュートン法の収束の速さは,f (x) = 0
の解が単根のとき,ǫ n+1 ≤ Cǫ 2 n
をみたし,
m
重根の時ǫ n +1 ≤ m − 1 m ǫ n をみたす.
証明は,
F (x) = x − f (x)/f ′ (x)
と考え,上の結果を適用すればよい.•
この結果から,ニュートン法は,解が単根の時と重根の時とでは,その収束の様子が質的に異 ることがわかる.•
さらに,ニュートン法の収束の判定には,次の結果を用いることができる.1.
ある値α
の近似列{ x n }
が| α − x n+1 | ≤ C | α − x n | 2を満たしていると仮定する. この時,
任意の0 < C < 1
に対して,| x n+1 − x n | < Cǫ | x n |
が成り立つならば,| α − x n | < ǫ | α |
が成り立つ.
2.
ある値α
の近似列{ x n }
が, ある0 < L < 1
が存在して,| α − x n+1 | ≤ L | α − x n |
を満たしていると仮定する. この時,| x n +1 − x n | < (1 − L)ǫ | x n |
が成り立つならば,| α − x n | < ǫ | α |
が成り立つ.•
たとえば,ニュートン法の単根の場合には,収束の判定条件として,「| x n+1 − x n | > ǫ | x n |
が成 り立つ間,繰り返しを続ける」と書けば,そのループから脱出した時点では,| x n+1 − x n | < ǫ | x n |
が成り立っているので,近似値x n+1 は解α
を相対誤差ǫ
で近似していると考えてよいこと
がわかる.
▼ その他の求根アルゴリズム
•
初回に解説した二分法と今回のニュートン法のほかに,簡単な求根アルゴリズムとしては,以 下のものが知られている.以下では, 関数
f
は区間[a, b]
上で定義された, 単調増加関数であり,f (a) < 0, f (b) > 0
と 仮定する. また,区間[a, b]
におけるf (x) = 0
の一意的な解をα
とする.•
「はさみうち法」などと呼ばれる方法.–
二分法では,繰り返しの際にc n = (a n + b n )/2
におけるf (c n )
の値の正負によって,区 間を取り替えていた.–
これを(a n , f(a n )), (b n , f(b n ))
を結ぶ直線とx
軸との交点をc n とおいて, f (c n )
の値
の正負によって区間を取り替える方法である.
–
二分法と同じく,「一次収束」する.–
二分法と同じく, 任意のn
に対して,α ∈ [a n , b n ]
が成り立つ. したがって,求めた近似 値の精度保証が容易である.•
「割線法」–
関数f
が区間[a, b]
で下に凸であると仮定できるとき,ニュートン法で「接線」を取った代わりに, (x
n , f (x n )), (x n +1 , f (x n +1 ))を通る直線とx
軸の交点をx n +2
とおく方法.
–
収束の次数は(1 + √
5)/2
となる. (ニュートン法よりも収束が遅い)–
関数の微分f ′ が複雑な式になっている場合や, f ′ を数値的にしか求めることができな
い場合には,ニュートン法よりも誤差を小さくできる可能性がある.
● 講義資料
▼ スツルム列の定義とスツルムの定理
区間
[a, b]
で定義された, degf k > deg f k+1 をみたす多項式の列{ f k } n k =0 がStrume
列をなす
とは,
Strume
列をなす とは,1.
任意のx ∈ [a, b]
に対して,f k (x)
とf k+1 (x)
は同時には0
にならない.2. f k (x 0 ) = 0
ならばf k − 1 (x 0 )f k+1 (x 0 ) < 0, 3. f n は定符号,
4. f 0 は重根を持たない(f0 (x) = 0
ならばf 0 ′ (x)f 1 (x) > 0
をみたす)ことを言う.
区間
[a, b]
上で定義された多項式列{ f k } n k=0 がスツルム列をなし,f 0 (a)f 0 (b) 6 = 0
であると仮定
する. このとき,
f 0 (x), f 1 (x), . . . , f n (x)
の符号変化の回数を
N (x)
とおくと,区間[a, b]
におけるf 0 (x)
の根の個数はN(a) − N (b)
に等し い. これをスツルムの定理を呼ぶ.▼ スツルム列の例
•
ルジャンドル多項式:P n
(n + 1)P n+1 (x) = (2n + 1)xP n (x) − nP n − 1 (x), P 0 (x) = 1, P 1 (x) = x, Z 1
− 1
P n (x)P m (x) dx = C n δ nm
•
第1種チェビシェフ多項式:T n
T n+1 (x) = 2xT n (x) − T n − 1 (x), T 0 (x) = 1, T 1 (x) = x, Z 1
− 1
T n (x)T m (x) dx
√ 1 − x 2 = C n δ nm , T n (cos(t)) = cos(nt),
•
第2種チェビシェフ多項式:U n
•
エルミート多項式:H n
H n +1 (x) = 2xH n (x) − 2nH n − 1 (x), H 0 (x) = 1, H 1 (x) = 2x, Z
R
H n (x)H m (x)e − x2dx = C n δ nm , U n − 1 (cos(t)) = sin(nt)
sin(t) ,
•
任意の多項式f
に対して,f 0 = f , f 1 = f ′ とおき,ユークリッドの互除法
f k = g k f k+1 − f k+2
で作られる列
{ f k } n k=0 は,f n が0
でない定数である時,スツルム列をなす.
0
でない定数である時,スツルム列をなす.-1 -0.5 0 0.5 1
-1 -0.5 0 0.5 1
Legendre Polynomial (n=0...4)
-2 -1 0 1 2
-1 -0.5 0 0.5 1
Chebyshev Polynomial of 1st kind (n=0...4)
-2 -1 0 1 2
-1 -0.5 0 0.5 1
Chebyshev Polynomial of 2nd kind (n=0...4)
P 11 (x)
の零点:+0.9782286581461, +0.8870625997681, +0.7301520055740, +0.5190961292068, +0.2695431559523,
+0.0000000000000,
− 0.2695431559523, − 0.5190961292068,
− 0.7301520055741, − 0.8870625997681, − 0.9782286581461.
▼ 収束の加速
次の図は,単位円に接する正多角形の周長による円周率の近似計算を, Romberg加速と
Aitken
加速を使って加速した例である.1e-16 1e-14 1e-12 1e-10 1e-08 1e-06 0.0001 0.01 1
10 100 1000 10000 100000 1e+06 1e+07 1e+08 1e+09
original 1 step 2 step Aitken
次の図は, 単位円に接する正多角形の周長による円周率の近似計算を, Romberg加速を用いて計算 している例であり,
λ
の値を正しい値から取り替えて計算した例である.1e-14 1e-12 1e-10 1e-08 1e-06 0.0001 0.01
10 100 1000 10000 100000 1e+06 1e+07 1e+08 1e+09
original 0.25 0.245 0.255 0.24 0.26 0.20 0.30
次の図は, arctan(x)の近似値のテイラー展開による近似計算を, Aitken 加速を使って加速した例 である.
0.0001 0.01 1
original x=1.00 Aitken x=1.00 original x = 0.99 Aitken x = 0.99 original x = 0.90 Aitken x = 0.90
● 実習内容
(以下で「★」の数は推奨の程度を示します. 多いほど推奨の度合いが大きい. また,「†」は 難易度またはマニアックな程度を表します. 多いほど難しいかマニアックかです.)
1.
(★★★)単位円に接する多角形の周長による円周率の近似計算をRomberg
加速によって 計算しなさい. (この資料の最初の図のような図を書きなさい)2.
(★★★)単位円に接する多角形の周長による円周率の近似計算を2段階のRomberg
加速 によって計算しなさい. (この資料の最初の図のような図を書きなさい)3.
(★★★)単位円に接する多角形の周長による円周率の近似計算をAitlen
加速によって計算 しなさい. (この資料の最初の図のような図を書きなさい)4.
(★★★)テイラー展開によるarctan(1), arctan(0.99)
の近似値の計算をAitlen
加速によっ て計算しなさい. (この資料の2つめの図のような図を書きなさい)5.
(★★)f(x) = (x 2 − 2) k に対するニュートン法による √
2
の近似計算を, Aitken 加速に よって計算しなさい.6.
(★★†)f(x) = (x 2 − 2) k に対するニュートン法による √
2
の近似計算を,k ≥ 2
の時にRomberg
加速によって計算しなさい.7.
(★★)ルジャンドル多項式,第1種チェビシェフ多項式,第2種チェビシェフ多項式のn = 5
までのグラフを描画しなさい.8.
(★)エルミート多項式のn = 5
までのグラフを描画しなさい.9.
(★★★)ルジャンドル多項式, 第1種チェビシェフ多項式, 第2種チェビシェフ多項式のn = 20
までのすべての零点を求めなさい. これらの多項式の根は,すべて実であり, [− 1, 1]
に存在することを仮定してよい.
10.
(★★††)エルミート多項式のn = 10
までのすべての零点を求めなさい. エルミート多 項式の根は,すべて実であることを仮定してよい.11.
(★†††)f(x) = 144x 7 − 36x 6 − 196x 5 + 49x 4 + 56x 3 − 14x 2 − 4x + 1
のすべての零点 を求めなさい. この多項式の根は, すべて実であり, [− 2, 2]
に存在することを仮定してよい.この問題では,スツルム列を手で(または, Mathematicaなどで)計算しておき,係数を浮動 小数点数でかくとよい.