1.ニュートン法...数値解析第14回 非線形方程式・ニュートン法...

3
数値解析第14回 非線形方程式・ニュートン法 1.ニュートン法 非線形方程式 f ( x ) = 0 の解を α ,初期値 x 0 α とする.変位 Δx の方程式 f ( x 0 + Δx ) = 0 (1) を考える.解は Δx = α x 0 である( f ( x 0 + ( α x 0 Δx "#$ )) = f ( α ) = 0 ).左辺はテイラー展開により, f ( x 0 + Δx ) = f ( x 0 ) + f ( x 0 )Δx + O( Δx 2 ) Δx は小さいとみて, O( Δx 2 ) を無視すれば,近似方程式 f ( x 0 ) + f ( x 0 )Δx = 0 を得る.これを解いて,(1)の解 Δx = α x 0 の近似式 Δx 0 = f ( x 0 ) f ( x 0 ) α x 0 を得る.これにより,改良された近似解 x 1 = x 0 + Δx 0 , Δx 0 = f ( x 0 ) f ( x 0 ) が得られる.この操作を繰り返して次の反復法を得る. 例1](平方根の計算) 正数 a > 0 の平方根 α = a は方程式 f ( x ) = x 2 a = 0 の正の解である.適当な正数 x 0 > 0 を初期値としたニュートン反復は次のように書ける. x k +1 = x k + Δx k , Δx k = f ( x k ) f ( x k ) = x k 2 a 2 x k ( k = 0, 1, !) 少し整理してやると, x k +1 = 1 2 x k + a x k ( k = 0, 1, !) 実際, a = 2 のとき, x 0 = 1.0 を初期値に反復すると, x 1 = 1 .5000!, 1桁正しい x 2 = 1.41 666!, 3桁正しい x 3 = 1.41421 5686!, 6桁正しい x 4 = 1.41421356237 46899! 12桁正しい となり, x 4 は12桁正しい! 1回の反復で正しい桁の数が約2倍になる.これが2次収束の特性である. x 5 を計算すると, x 5 = 1.41421356237309504880168 9623 ! 24桁正しい となり,予想通りである. p > 1 のとき, p 次収束では,1回の反復で正しい桁の数が約 p 倍になる.// <ニュートン法> 適当な初期値 x 0 を取り, x k +1 = x k + Δx k , Δx k = f ( x k ) f ( x k ) ( k = 0, 1, !) 授業資料 http://www.st.nanzan-u.ac.jp/info/sugiurah 質問メールなど [email protected]

Upload: others

Post on 02-Feb-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1.ニュートン法...数値解析第14回 非線形方程式・ニュートン法 1.ニュートン法 非線形方程式f(x)=0の解をα,初期値x 0≅αとする.変位Δxの方程式

数値解析第14回 非線形方程式・ニュートン法

1.ニュートン法 非線形方程式 f (x) = 0の解をα ,初期値 x0 ≅α とする.変位 Δxの方程式

f (x0 + Δx) = 0. (1)

を考える.解は Δx =α − x0 である(∵ f (x0 + (α − x0Δx"#$)) = f (α ) = 0 ).左辺はテイラー展開により,

f (x0 + Δx) = f (x0 )+ ′f (x0 )Δx +O(Δx2 ).

Δx は小さいとみて,O(Δx2 )を無視すれば,近似方程式

f (x0 )+ ′f (x0 )Δx = 0

を得る.これを解いて,(1)の解 Δx =α − x0 の近似式

Δx0 = − f (x0 )′f (x0 )

≅α − x0

を得る.これにより,改良された近似解

x1 = x0 + Δx0, Δx0 = − f (x0 )′f (x0 )

が得られる.この操作を繰り返して次の反復法を得る.

[例1](平方根の計算) 正数 a > 0の平方根α = a は方程式 f (x) = x2 − a = 0の正の解である.適当な正数x0 > 0を初期値としたニュートン反復は次のように書ける.

xk+1 = xk + Δxk , Δxk = − f (xk )′f (xk )

= − xk2 − a2xk

(k = 0,1,!).

少し整理してやると,

xk+1 =12

xk +axk

⎛⎝⎜

⎞⎠⎟(k = 0,1,!).

実際, a = 2のとき, x0 = 1.0 を初期値に反復すると,

x1 = 1.5000!, 1桁正しいx2 = 1.41666!, 3桁正しいx3 = 1.414215686!, 6桁正しいx4 = 1.4142135623746899! 12桁正しい

となり, x4 は12桁正しい!

 1回の反復で正しい桁の数が約2倍になる.これが2次収束の特性である. x5を計算すると,

x5 = 1.414213562373095048801689623! 24桁正しい

となり,予想通りである.  p >1のとき, p次収束では,1回の反復で正しい桁の数が約 p倍になる.//

<ニュートン法>適当な初期値 x0を取り,

xk+1 = xk + Δxk , Δxk = − f (xk )′f (xk )

(k = 0,1,!)

授業資料 http://www.st.nanzan-u.ac.jp/info/sugiurah 質問メールなど [email protected]

Page 2: 1.ニュートン法...数値解析第14回 非線形方程式・ニュートン法 1.ニュートン法 非線形方程式f(x)=0の解をα,初期値x 0≅αとする.変位Δxの方程式

授業資料 http://www.st.nanzan-u.ac.jp/info/sugiurah 質問メールなど [email protected]

2.ニュートン法の収束次数△ 解α は m重解: f (α ) = ′f (α ) =!= f (m−1)(α ) = 0, f (m)(α ) ≠ 0.//

[定理1]ニュートン法で生成される近似列 {xk}k≥0が単解α に収束するなら,その収束次数は2である.//(証明)

limxk→α

xk+1 −α(xk −α )

2 = limxk→α

xk −f (xk )′f (xk )

xk+1! "# $#

−α

(xk −α )2 =

Llimxk→α

1− ′f (xk )2 − f (xk ) ′′f (xk )

′f (xk )2

2(xk −α )

= limxk→α

f (xk ) ′′f (xk )′f (xk )

2

2(xk −α )= ′′f (α )2 ′f (α )2

limxk→α

f (xk )xk −α

=L ′′f (α )2 ′f (α )2

limxk→α

′f (xk )

= ′′f (α )2 ′f (α )2

′f (α ) = ′′f (α )2 ′f (α )

.

ゆえに xkがα に十分近ければ, xk+1 −α ≅ ′′f (α )2 ′f (α )

xk −α2となり,2次収束が示された.//

[例2]例1において,誤差 ek = xk − 2 と ek+1ek2 を計算すると,次のようになる.

e1 = 8.6 ×10−2, e2 = 2.5 ×10

−3, e3 = 2.1×10−6, e4 = 1.59 ×10

−12

e2e12 = 0.333, e3

e22 = 0.353, e3

e22 = 0.354

[定理2] m ≥ 2で,ニュートン法で生成される近似列 {xk}k≥0が m重解α に収束するなら,その収束次数

は1,収束率は m −1mである.//

[例3] f (x) = x2 = 0の解 x = 0は重解である. x0 ≠ 0 を初期値としたニュートン反復は,

xk+1 = xk −f (xk )′f (xk )

= xk −xk2

2xk= 12xk (k = 0,1,!)

である. {xk}は公比12の等差数列で,収束率 1

2で1次収束する.//

注意:ニュートン法の収束は速いが,初期値が不適切だと収束しないこともある.

練習問題 例1において,次のことを示せ.

(1) xk+1 − a = 12xk

xk − a( )2.(ヒント: xk+1 =12

xk +a( )2xk

⎜⎜

⎟⎟)

(2) xk > a なら, xk > xk+1 > a を示せ.(ヒント:(1))

(3) xk > a なら, xk+1 − a < 12 a

xk − a2 .(ヒント:(1))

Page 3: 1.ニュートン法...数値解析第14回 非線形方程式・ニュートン法 1.ニュートン法 非線形方程式f(x)=0の解をα,初期値x 0≅αとする.変位Δxの方程式

授業資料 http://www.st.nanzan-u.ac.jp/info/sugiurah 質問メールなど [email protected]

第14回練習問題 例1において,次のことを示せ.

(1) xk+1 − a = 12xk

xk − a( )2.(ヒント: xk+1 =12

xk +a( )2xk

⎜⎜

⎟⎟)

(2) xk > a なら, xk > xk+1 > a を示せ.(ヒント:(1))

(3) xk > a なら, xk+1 − a < 12 a

xk − a2 .(ヒント:(1))

練習問題解答

(1) xk+1 − a = 12

xk +a( )2xk

⎜⎜

⎟⎟− a = 1

2xkxk2 − 2 axk + a( )2⎛

⎝⎞⎠ =

12xk

xk − a( )2 .

(2) xk > a より, xk+1 − a = 12xk

xk − a( )2 > 0ゆえ, xk+1 > a .

また, xk+1 − xk = − f (xk )′f (xk )

= − xk2 − a2xk

< 0より, xk > xk+1.

(3) (1) より, xk+1 − a = 12xk

xk − a2< 12 a

xk − a2.