Introduction: 地盤材料の変形強度特性の特徴の簡単な説明 … · 地盤の反応の予測のための様々な課題 1.微少ひずみでの剛性 2.ひずみと圧力による非線形性
数値計算法 第2章非線形方程式その1 - Chiba Utakei/NOTE/suutikeisan/2-3...2017/04/18...
Transcript of 数値計算法 第2章非線形方程式その1 - Chiba Utakei/NOTE/suutikeisan/2-3...2017/04/18...
数値計算法第2章 非線形方程式その1第3章 非線形方程式その2
千葉大学工学部機械工学科担当者 武居昌宏
教科書数値計算入門 (Computer Science Library)河村哲也 (著) 出版社:サイエンス社 (2006/04) ISBN-10: 9784781911267
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● ●
● ●
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●)
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
●●
●
●例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
● ●
厳密解をαとすると、
●例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
●例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
●ニュートン法のデメリット1)複数根がある場合、どの根に収束するかわからない。
2)微分が必要微分が得にくい場合
->割線法(セカント法)
●ニュートン法が適さない例
出発値が適当でなければ、根が得られない可能性がある。
-> 2分法で根のおよその見当をつけておく
図2.6 ニュートン法が適さない例
2.4 ニュートン法の特徴
ローカルミニマムな点に収束してしまう
出発値が適当でない
●割線法(セカント法)接線-を使わずに(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 割線法● ●
式(2.6)より、
初期値x-1 =0, x0=0.5の結果
)()()( 1
11 n
nn
nnnn xf
xfxf
xxxx
●例1 割線法による 0cos)( 2 xxxf の根の近似
表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)
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乗以上の項を無視
))((''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)
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
面𝑧 = 𝑓(𝑥, 𝑦)
誤差𝑅(𝒙)
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
),()(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
この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)
とおく。式(3.11)より、
●例1 122 yx
のニュートン法による根
…(3.11)),(),(),(
),(),(),(
nnnnynnx
nnnnynnx
yxgyyxgxyxg
yxfyyxfxyxf
xy sin
…①
…②
式①と式②のΔxとΔyに関する連立方程式を解く
ポイント:ΔxとΔyの中にxn+1とyn+1が入っている。式(3.10)参照
初期値(1,0)から始めると右表となる。初期値(-1,0)から
始めるとマイナスの解も求まる。