数値計算法 第2章非線形方程式その1 - chiba utakei/note/suutikeisan/2-3...2017/04/18...

19
数値計算法 2非線形方程式その1 3非線形方程式その2 千葉大学工学部機械工学科 担当者 武居昌宏 教科書 数値計算入門 (Computer Science Library) 河村 哲也 () 出版社: サイエンス社 (2006/04) ISBN-10: 9784781911267

Upload: others

Post on 11-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 数値計算法 第2章非線形方程式その1 - Chiba Utakei/NOTE/suutikeisan/2-3...2017/04/18  · 数値計算法 第2章非線形方程式その1 第3章非線形方程式その2

数値計算法第2章 非線形方程式その1第3章 非線形方程式その2

千葉大学工学部機械工学科担当者 武居昌宏

教科書数値計算入門 (Computer Science Library)河村哲也 (著) 出版社:サイエンス社 (2006/04) ISBN-10: 9784781911267

Page 2: 数値計算法 第2章非線形方程式その1 - Chiba Utakei/NOTE/suutikeisan/2-3...2017/04/18  · 数値計算法 第2章非線形方程式その1 第3章非線形方程式その2

y=f(x)が連続,x軸の2点a●,b● (a<b)

f(c)=0を満たすc●がa<c<bに存在する

初めにcをa,bの中点●とする

c←b

●解の誤差の最大値

●解が含れる区間

●仮定

●アルゴリズム

●これを繰り返すとa●=b●=c●となりそれが解

第2章 非線形方程式その1 2.1 2分法

パターンⅠ パターンⅡ

a→c 図2.1 2分法

パターンⅠ

y=f(x)パターンⅡ

c←b

a→c

y=f(x)

c

y=f(x)

ca b

b

y=f(x)

a

● ●

𝑓 𝑎 𝑓 𝑐 > 0● ●

● ●

Page 3: 数値計算法 第2章非線形方程式その1 - Chiba Utakei/NOTE/suutikeisan/2-3...2017/04/18  · 数値計算法 第2章非線形方程式その1 第3章非線形方程式その2

y=f(x)パターンⅡ

a→c

ca b

a(0.0●)→c(0.5●)

1回目のc=0.5は便宜上2番目に書いてある

3回目のc=0.875は便宜上4番目に書いてある

例1 2分法の例

27回目で収束

パターンⅠ

c←b

y=f(x)

c

y=f(x)

ba

● ●

𝑓 𝑎 𝑓 𝑐 > 0● ●

a(0.5●)→c(0.75●)

●2回目

●1回目●3回目

●●

b(1.0●)→c(0.875●)

Page 4: 数値計算法 第2章非線形方程式その1 - Chiba Utakei/NOTE/suutikeisan/2-3...2017/04/18  · 数値計算法 第2章非線形方程式その1 第3章非線形方程式その2

2.3ニュートン法の原理

y=f(x)とx軸との交点●を求める→接線を利用する

xn●:n番目の根の近似値

f'(xn)-:(xn, f(xn))おける接線

よって,xn●とxn+1●との漸化式は

まで繰り返す。

…(2.4) 図2.5 ニュートン法

●アルゴリズム

)('

)(1

n

nnn

xf

xfxx

y=f(x)

xxnxn+1

(xn, f(xn))

f'(xn+1)

f'(xn)

(xn+1, f(xn+1))

nx

1nx

● ●

1

0)()('

nn

nn

xx

xfxf

●●

Page 5: 数値計算法 第2章非線形方程式その1 - Chiba Utakei/NOTE/suutikeisan/2-3...2017/04/18  · 数値計算法 第2章非線形方程式その1 第3章非線形方程式その2

●例1

※2分法よりも収束が速い!!

表2.3 ニュートン法(重根)

0cos)( 2 xxxf の根の近似値

y=f(x)

xxnxn+1

(xn, f(xn))

f'(xn+1)

f'(xn)

(xn+1, f(xn+1))

nx

1nx

(2.4)式より

)('

)(1

n

nnn

xf

xfxx

nn

nnnn

xx

xxxx

sin2

cos 2

1

● ●

Page 6: 数値計算法 第2章非線形方程式その1 - Chiba Utakei/NOTE/suutikeisan/2-3...2017/04/18  · 数値計算法 第2章非線形方程式その1 第3章非線形方程式その2

厳密解をαとすると、

●例2

𝑓′(𝑥) = 2𝑥 − 1(2.4)式は、

𝛼2 − 𝛼 − 1 = 0

=0

n+1回目の誤差がn回目の誤差の2乗に比例(2次の収束)⇒n回目の誤差が1/100ならばn+1回目の誤差が(1/100)の2乗程度⇒収束が速い!!

両辺を 𝑥𝑛 − 𝛼2で割ると

上の漸化式からαを引くと、

こうなるか各自確認!!

1回繰り返し計算をすると誤差はどうなるか?

)('

)(1

n

nnn

xf

xfxx

01)( 2 xxxf の根の近似値

※わざとこの0の項を入れる!!

12

12

1

nn

n

xx

x

Page 7: 数値計算法 第2章非線形方程式その1 - Chiba Utakei/NOTE/suutikeisan/2-3...2017/04/18  · 数値計算法 第2章非線形方程式その1 第3章非線形方程式その2

●例3

𝑓′ 𝑥 = 3𝑥2 − 2𝑥 − 5

x=1.0に収束するが、重根のため、収束は遅い!!

…(2.4))('

)(1

n

nnn

xf

xfxx

035)( 23 xxxxf

523

352

23

1

nn

nnnnn

xx

xxxxx

523

322

23

nn

nn

xx

xx

Page 8: 数値計算法 第2章非線形方程式その1 - Chiba Utakei/NOTE/suutikeisan/2-3...2017/04/18  · 数値計算法 第2章非線形方程式その1 第3章非線形方程式その2

●ニュートン法のデメリット1)複数根がある場合、どの根に収束するかわからない。

2)微分が必要微分が得にくい場合

->割線法(セカント法)

●ニュートン法が適さない例

出発値が適当でなければ、根が得られない可能性がある。

-> 2分法で根のおよその見当をつけておく

図2.6 ニュートン法が適さない例

2.4 ニュートン法の特徴

ローカルミニマムな点に収束してしまう

出発値が適当でない

Page 9: 数値計算法 第2章非線形方程式その1 - Chiba Utakei/NOTE/suutikeisan/2-3...2017/04/18  · 数値計算法 第2章非線形方程式その1 第3章非線形方程式その2

●割線法(セカント法)接線-を使わずに(xn, f(xn)) と(xn-1, f(xn-1))を直線-で結ぶ近似

…(2.5)

割線法は、微分が不必要、収束が遅い、出発値が2つ必要

式(2.5)をニュートン法の漸化式(2.4)に代入すると …(2.4)

ニュートン法の1

𝑓′(𝑥𝑛)

…(2.6)

)('

)(1

n

nnn

xf

xfxx

)()()( 1

11 n

nn

nnnn xf

xfxf

xxxx

(xn-1, f(xn-1))

(xn, f(xn))

y=f(x)

f'(xn)

xxnxn-1

図2.7 割線法● ●

Page 10: 数値計算法 第2章非線形方程式その1 - Chiba Utakei/NOTE/suutikeisan/2-3...2017/04/18  · 数値計算法 第2章非線形方程式その1 第3章非線形方程式その2

式(2.6)より、

初期値x-1 =0, x0=0.5の結果

)()()( 1

11 n

nn

nnnn xf

xfxf

xxxx

●例1 割線法による 0cos)( 2 xxxf の根の近似

表2 割線法

Page 11: 数値計算法 第2章非線形方程式その1 - Chiba Utakei/NOTE/suutikeisan/2-3...2017/04/18  · 数値計算法 第2章非線形方程式その1 第3章非線形方程式その2

第3章 非線形方程式その2 3.1 テイラー展開とニュートン法

f(x)を近似解xn周りにテイラー展開すると,

xをxn+1とすると,

ニュートン法の公式(2.4)と同じ!!

●テイラー展開からの導出

(3.2)=0

)('

)(1

n

nnn

xf

xfxx …(3.4)

…(3.1)

))((')()( nnn xxxfxfxf xnの傾きx

y)(xf

)( nxf

nx 1 nxx

)(xf

))((' nn xxxf

2))((''2

1nn xxxf

http://www.synapse.ne.jp/~dozono/math/anime/maclaurin/maclaurin.htm

●参考 sinxのマクローリン展開

2))((''2

1nn xxxf

))((')(0 nnn xxxfxf

式(3.2)=0の解を求める.第3項以下を0とすると,

0)( xf

…(3.3)

Page 12: 数値計算法 第2章非線形方程式その1 - Chiba Utakei/NOTE/suutikeisan/2-3...2017/04/18  · 数値計算法 第2章非線形方程式その1 第3章非線形方程式その2

32

1)('

)("

2

1n

n

nnn xO

xf

xfxx

)('

)()(

n

nn

xf

fxfx

)('

)(1

n

nnn

xf

xfxx

式(3.1)の真解αのときf(α)=0としてn+1回での誤差を求める。

--部分が消えて-以降しか残らない

n回の誤差の2乗とn+1回の誤差の比→一定一回反復すると2乗の割合で誤差が小さくなる→2次の収束

●誤差

=0

…(3.5)

…(3.6)

式(3.4)の両辺からαを引くと

2

)("2

1nn xxf

式(3.2)テイラー展開式のxにαを代入

nnn xxfxff )(')()(

2nx両辺を で割り3乗以上の項を無視

Page 13: 数値計算法 第2章非線形方程式その1 - Chiba Utakei/NOTE/suutikeisan/2-3...2017/04/18  · 数値計算法 第2章非線形方程式その1 第3章非線形方程式その2

))((''2

1)('

)(

nnn

nn

xxxfxf

xfxx

))((')()( nnn xxxfxfxf

2))((''2

1nn xxxf

2次の項まで残すと,

左辺をf(x)=0とおくと,

(x-xn)を式(3.3)で置き換え

●精度向上(ベイリー法)

※ベイリー法はニュートン法よりも収束が速いがf’’も必要!!

ここにもxがある!!

…(3.3)

…(3.7)

))((')(0 nnn xxxfxf

)('2

)('')()('

)(1

n

nnn

nnn

xf

xfxfxf

xfxx

))((''2

1)(' nnn xxxfxf

)()()( nn xxxfxf xnの傾き

x

y)(xf

)( nxf

nx1 nxx

)(xf

))((' nn xxxf

2))((''2

1nn xxxf

…(3.2)

Page 14: 数値計算法 第2章非線形方程式その1 - Chiba Utakei/NOTE/suutikeisan/2-3...2017/04/18  · 数値計算法 第2章非線形方程式その1 第3章非線形方程式その2

3.2 連立非線形方程式

●2変数の関数f(x,y) (面を表す)を(xn, yn)の周りにテイラー展開

ただし、 と定義

●復習 1変数の関数f(x)をx=aの周りにテイラー展開

yynxynnxxn

ynxnnn

fyyfyyxxfxx

fyyfxxyxfyxf

22 )())((2)(!2

1

)()(!1

1),(),(

この項が出現 注意!!

)()(grad nnf xxx

太字と「・」注意!!

,x

ff x

,

y

ff y

,

2

2

x

ff xx

,

2

2

y

ff yy

yx

ff xy

2

),(),,( nnn yxyx xx

Page 15: 数値計算法 第2章非線形方程式その1 - Chiba Utakei/NOTE/suutikeisan/2-3...2017/04/18  · 数値計算法 第2章非線形方程式その1 第3章非線形方程式その2

面𝑧 = 𝑓(𝑥, 𝑦)

誤差𝑅(𝒙)

grad 𝑓(𝒙𝒏)・(𝒙 − 𝒙𝒏)

𝑓(𝒙𝟎)

F

grad𝑓(𝒙𝒏)

接平面の法線ベクトル

𝑓(𝒙)

B

C

DE

この点線は接平面内にない。x-y平面と平行な面内にある!!

この線は接平面内にあり、x-z平面と

平行な面内にある!!

𝑥𝑛

𝑓(𝑥𝑛)

傾き𝑓′(𝑥𝑛)

𝑓(𝑥)

𝑥

𝑓′(𝑥𝑛)(𝑥 − 𝑥𝑛)

𝑓(𝑥𝑛)

誤差𝑓(𝑥)

𝑅(𝑥)

𝑥

A

B

C

D

(𝑥 − 𝑥𝑛)

E

●2変数関数のテイラー展開の直観的イメージ(2年生工業数学Ⅰ復習)

),( nnn yxx),( yxx

F

A

yynxynnxxn

ynxnnn

fyyfyyxxfxx

fyyfxxyxfyxf

22 )())((2)(!2

1

)()(!1

1),(),(

)()(grad nnf xxx ●E ●D←→●C●B

●C ←→●B

Page 16: 数値計算法 第2章非線形方程式その1 - Chiba Utakei/NOTE/suutikeisan/2-3...2017/04/18  · 数値計算法 第2章非線形方程式その1 第3章非線形方程式その2

),()(2

1

),())((),()(2

1

),()(),()(),(),(

2

2

nnyyn

nnxynnnnxxn

nnynnnxnnn

yxgyy

yxgyyxxyxgxx

yxgyyyxgxxyxgyxg

●2変数のふたつの関数 (2つの面を表す)

(xn, yn)の周りにテイラー展開。

この項が出現 注意!!

…(3.9)

),()(2

1

),())((),()(2

1

),()(),()(),(),(

2

2

nnyyn

nnxynnnnxxn

nnynnnxnnn

yxfyy

yxfyyxxyxfxx

yxfyyyxfxxyxfyxf

この項が出現 注意!!

…(3.8)0),( yxf 0),( yxg )()(grad nnf xxx

太字と「・」注意!!

)()(grad nng xxx

Page 17: 数値計算法 第2章非線形方程式その1 - Chiba Utakei/NOTE/suutikeisan/2-3...2017/04/18  · 数値計算法 第2章非線形方程式その1 第3章非線形方程式その2

このx-y平面上点 (x,y)↓点 (xn+1,yn+1)を求める

f(x,y)

x

g(x,y)

yさらに、xをxn+1、yをyn+1として

とおくと,

式(3.9)左辺=0(x-y面上の曲線を表す)、二次以上の項を省略

=Δx

=Δx

=Δy

=Δy

式(3.11)のΔxとΔyに関する連立1次方程式を解いて xn+1とyn+1を求める。

…(3.11)

…(3.10)

),(),(),(

),(),(),(

nnnnynnx

nnnnynnx

yxgyyxgxyxg

yxfyyxfxyxf

ポイント: ΔxとΔyの中にxn+1とyn+1が入っている。

,1 nn xxx

nn yyy 1(xn,yn)

Page 18: 数値計算法 第2章非線形方程式その1 - Chiba Utakei/NOTE/suutikeisan/2-3...2017/04/18  · 数値計算法 第2章非線形方程式その1 第3章非線形方程式その2

とおく。式(3.11)より、

●例1 122 yx

のニュートン法による根

…(3.11)),(),(),(

),(),(),(

nnnnynnx

nnnnynnx

yxgyyxgxyxg

yxfyyxfxyxf

xy sin

…①

…②

Page 19: 数値計算法 第2章非線形方程式その1 - Chiba Utakei/NOTE/suutikeisan/2-3...2017/04/18  · 数値計算法 第2章非線形方程式その1 第3章非線形方程式その2

式①と式②のΔxとΔyに関する連立方程式を解く

ポイント:ΔxとΔyの中にxn+1とyn+1が入っている。式(3.10)参照

初期値(1,0)から始めると右表となる。初期値(-1,0)から

始めるとマイナスの解も求まる。