Post on 15-Mar-2020
数値計算法第14章 微分方程式その3第15章 偏微分方程式
千葉大学工学部機械工学科担当者 武居昌宏
教科書数値計算入門 (Computer Science Library)河村哲也 (著) 出版社:サイエンス社 (2006/04) ISBN-10: 9784781911267
第14章 微分方程式その3 14.1 数値微分●二階微分方程式の差分式
n階微分方程式の近似n + 1点の関数値が必要
P点の2階微分をPQR点のy座標と係数a,b,cで表す
k
𝑢𝑗−1
𝑢𝑗
𝑢𝑗+1
P
Q
R
この2階微分を求めたい
係数a,b,cはいくらか?
kとhはNOT=としている
関数uの点xjの周りのテイラー展開
k
𝑢′𝑗−1
𝑢′𝑗
𝑢′𝑗+1
P
𝑑2𝑢
𝑑𝑥2
𝑥=𝑥𝑗
Q
R
112
2
)(
22
)(
2
jjj
xjx
uhkh
ukh
uhkkdx
ud
このテイラー展開した式を式(14.1)に代入すると、
このa,b,cを式(14.1)に代入
‥‥(14.2)この式(14.2)がx=xjにおける2階微分の近似であるためには、
等間隔格子 k=hのとき
2階微分方程式の差分式
‥(14.3)
‥(14.4)2
11
2
2 2
h
uuu
dx
ud jjj
xjx
‥‥(14.2)
●1階微分を3点で表す
式(14.2)で0階微分係数を0、1階微分係数を1、2階微分係数を0なので
式(14.2)は、
a,b,cを求めると
等間隔格子 k=hのとき
●中心差分 ‥‥(14.6)
)(
)(
)(
11
hkh
ku
kh
ukh
hkk
hu
dx
du jjj
‥‥(14.5)
●前進差分 1階微分は2点で表せられるので
‥(14.7)
k
𝑢𝑗−1
𝑢𝑗
𝑢𝑗+1
P
Q
R
‥(A) テイラー展開した式を式(A)に代入して係数を決定
●後退差分
‥(B)テイラー展開した式を式(B)に代入して係数を決定
‥(14.7)
𝑑𝑢
𝑑𝑥
h
uu
x
u jj
1
d
d
k
uu
x
u jj 1
d
d
jj buaux
u 1
d
d
14.2 境界値問題(1) ディレクレ境界条件⇒2つの境界値が必要
‥(14.8) ‥(14.9)
j=1,2,… J-1のJ-1
個の連立一次方程式未知数y1 ,y2 , ….. yJ-1のJ-1個
y0と yJは境界条件で既知
↑y=yj ,↑x=jhとする
h
𝑑2𝑦
𝑑𝑥2
𝑥=𝑥𝑗𝑦𝑗−1
𝑦𝑗
𝑦𝑗+1
P
Q
R
𝑦𝐽
Jh=1𝑦0
0 h 2h (j-1)h jh (j+1)h (J-1)h
𝑦′𝑗
𝑦′𝑗+1
𝑦𝑗−1
Q’
P’
R’
‥(14.11)
式(14.4) の2階微分方程式の差分式より、
‥(14.12)P点Q点 R点
3項方程式 トーマス法j=1,2,….. J-1のJ-1個の連立一次方程式未知数 y1,y2, ….. , yJ-1のJ-1個
‥‥(14.13)
‥(14.12)
●(14.12)式の解き方
j=3
j=2
j=J-2
j=J-1
j=1
‥‥
境界条件よりy0=0なので省略
境界条件よりyJ=0なので省略
P点Q点 R点
●例1 実際に式(14.8)を4格子(h=1/4)で解いてみる
‥(14.8) ‥(14.9)
𝑑2𝑦
𝑑𝑥2
𝑥=𝑥𝑗
𝑦1
𝑦2
𝑦3
P
Q
R
𝑦44h=1
𝑦00 1h 2h 3h
j=1,2,3,4を代入3個の連立一次方程式未知数 y1,y2, y3の3個
‥(14.12)
境界条件よりy0=y4=0なので省略
y1=0.04427, y2=0.07016y3 =0.06040
境界条件も差分近似する1階微分の近似に前進差分
境界条件 y’(1) = 0の前進差分近似 (14.7)式より、
J+1は領域外の仮想の点
h
𝑑2𝑦
𝑑𝑥2
𝑥=𝑥𝑗
𝑦𝑗−1
𝑦𝑗
𝑦𝑗+1
P
Q
R
𝑦𝐽
Jh=1𝑦0
0 h 2h (j-1)h jh (j+1)h (J-1)h (J+1)h
14.3 境界値問題(2) ノイマン条件 境界条件が微分で与えられる
‥‥(B)
…(14.8)
‥(14.7)h
uu
x
u jj
1
d
d
(B)式の境界条件より●yJ+1=●yJなのでyJ+1を消去
右端の境界x=1●では、式(14.12)に j=Jを代入すると、
で置き換える。
ミスプリ”-”が必要
j=Jの式
j=J-1の式
ミスプリ”-”が必要
式(14.4)も含めたj=1,2,…JのJ個の連立一次方程式未知数y1,y2,..yJのJ個
…(14.14)
…(14.8)
…(14.12)
解くべき連立1次方程式は式(14.13)とほぼ同じでj=J-1の方程式を
式(14.8)を差分で表した式(14.12)をもう一度書くと、
2
●yJは境界条件から求まらない
11
‥(14.8)
●例1 ノイマン境界値問題 式(14.8)より領域を10等分(J=10, h=0.1)
表 14.1 厳密解教科書「’」がない ミスプリ
●リンゴは誰がかじったか?
ジョンフォン・ノイマン(~1957年)ハンガリー帝国
バイト(Byte)とかじる(Bite)を掛けたデザイン
コンピュータの父
※ちなみに微分方程式のノイマン条件のノイマンは「カール・ノイマン」で「ジョンフォン・ノイマン」とは別人
スティーブ・ジョブズアラン・チューリング(~1954年)英国マンチェスター大学教授
同性愛は当時法律的に犯罪で、チューリングは逮捕されその後自殺。彼の部屋のベッドのそばに一口かじったリンゴが残っていた。検死によると青酸中毒による自殺と断定。
https://ja.wikipedia.org/wiki/
http://www.fbs.osaka-u.ac.jp/labs/skondo/saibokogaku/Turing.html
14.4 線の方法 ●1次元拡散方程式の初期値・境界値問題
境界条件(tのときに両端の値) 初期条件(時間t=0のときのuの分布)
𝜕𝑇
𝜕𝑡= 𝛼𝛻2𝑇
𝜕𝐶
𝜕𝑡= 𝐷𝛻2𝐶
C:濃度[kg/m3]D:拡散係数[m2/s]α:温度拡散率[m2/s]
http://honmokucoffee.blog.fc2.com/
…(14.15)
熱伝導方程式
拡散方程式
f(x)
初期条件
x
u
u=0
x=0 x=1
u = ?
境界条件
x
u
u=0
x=0 x=1
2
2
x
u
t
u
)0,10( tx
常微分なので左辺を例えばオイラー法で表して代入
xに関してJ-1個の未知数ujに対する連立J-1元常微分方程式
左辺uはxとtの関数⇒uのxのみ差分近似:点xjでのuの値は時間のみの関数⇒偏微分が常微分
…(14.15)2
2
x
u
t
u
)0,10( tx
‥(14.4)2
11
2
2 2
d
d
h
uuu
x
u jjj
xjx
境界条件 初期条件
…(14.16)
…(12.3)t
tuttu
t
u jjj
)()(
d
d
↓ ( )と下付きjの違いに注意
時間を固定すれば2階常微分
方程式の差分式で表現できる
線の方法:一部の変数(この場合x)に対してのみ差分近似xのJ-1元連立常微分方程式を解く方法注意:Δtを小さくしても方程式は増えない!!
Δt
j=1
Δx
2 x
t
初期条件
𝑢 𝑗0
= 𝑓(𝑥𝑗)0 j-1 j j+1 J-1
境界条件 𝑢 𝐽−1𝑡= 0境界条件 𝑢 𝑗
𝑡= 0
nΔt𝑢𝑗−1
𝑛𝑢 𝑗
𝑛 𝑢𝑗+1𝑛
𝑢 𝑗𝑛+1
(n+1)Δt
…(14.17)
𝑢𝑗 𝑛Δ𝑡 = 𝑢 𝑗𝑛と表す時間
離散化した位置
点xjでのuの値は時間のみの関数
∆𝑓 = 𝛻2𝑓 = 0 𝛻2𝑓 = 𝐺(x,y)
𝜕2𝑓
𝜕𝑡2 = 𝑐2𝛻2𝑓
𝜕𝑇
𝜕𝑡= 𝛼𝛻2𝑇
𝜕𝐶
𝜕𝑡= 𝐷𝛻2𝐶 C: 濃度[kg/m3], D: 拡散係数[m2/s]
𝜕𝑓
𝜕𝑡= −(𝒗・𝛻)𝑓
第15章 偏微分方程式
𝒗・𝛻 = 𝑣𝑥
𝜕
𝜕𝑥+ 𝑣𝑦
𝜕
𝜕𝑦関数f(x,y,t), 𝒗 = 𝑣𝑥 , 𝑣𝑦 速度ベクトル
)/( pck α
α:温度拡散率[m2/s], T :温度[K],𝜌:流体密度[kg/m3], 𝑐𝑝:比熱[J/kg・K],
𝑘:熱伝導率[W/(m・K)]
●2 階線形偏微分方程式の標準形
(1)ラプラス方程式(楕円型)
(2)ポアソン方程式(楕円型非同次)
(3)熱伝導方程式(放物型)
(4)拡散方程式(放物型)
(6)移流方程式
G=0 : 同次方程式G != 0 : 非同次方程式A~G: x, y の任意関数
<0:楕円型, =0:放物型, >0: 双曲型
●非線形ft + α(t, x, f)fx = G(t, x, f) ●線形 ft + α(t, x)fx = G(t, x)
(5)波動方程式(双曲型) f(x,y,t):振幅, t: 時間変数, c:波の速度
02
22
2
2
GFf
y
fE
x
fD
y
fC
yx
fB
x
fA
042 ACB
y x
O
y
O 𝑣𝑥
O
移流と拡散
移流
拡散
𝑣𝑥
y
●焼き鳥屋さんのうちわのもう一つの役割
拡散方程式
C :焼き鳥の成分濃度 [ k g / m 3]D:拡散係数[m2/s]
𝒗 = 𝑣𝑥 , 𝑣𝑦 :うちわによる流体速度 [ m /s ]
𝜕𝐶
𝜕𝑡= 𝐷
𝜕2𝐶
𝜕𝑥2+
𝜕2𝐶
𝜕𝑦2
𝜕𝐶
𝜕𝑡+ 𝑣𝑥
𝜕𝐶
𝜕𝑥+ 𝑣𝑦
𝜕𝐶
𝜕𝑦= 𝐷
𝜕2𝐶
𝜕𝑥2+
𝜕2𝐶
𝜕𝑦2
移流項拡散を無視D=0 一般的な場合を考えて、C=u、v x=c、 v y=0とおく
𝜕𝑢
𝜕𝑡+ 𝑐
𝜕𝑢
𝜕𝑥= 0
移流拡散方程式移流方程式
𝜕𝐶
𝜕𝑡+ 𝒗 ∙ 𝛻 𝐶 = 𝐷𝛻2 𝐶
𝑦𝑥
O
15.1 移流方程式の差分解法(1)
式(15.1)を差分で表す。
クーラン数
空間は後退差分時間は前進差分
…(15.3)
t+Δtの値をx,tの値とx-Δxの値で表せる!!
Q点 P点
0
x
uc
t
u …(15.1) …(15.2)
R点
空間の離散点
時間の離散点
…(15.4)
Q 𝑢𝑗𝑛+1
𝑢𝑗𝑛
P(𝑢𝑗 , 𝑡𝑛)
R 𝑢𝑗−1𝑛
u(x,0)=f(x)
初期条件
境界条件は設定していないが0とする
Q点はP点とR点から求まる!!
𝑢𝑗𝑛+1
𝑢𝑗𝑛
𝑢𝑗−1𝑛
P(𝑢𝑗 , 𝑡𝑛)
式(15.5)を用いれば、式(15.3)は点Pにおいて、
…(15.7)rクーラン数
Q点 P点 R点
このu0は初期値より既知
図15.3 解の求め方
点Qのu …(15.5)
点Rのu
u1
u0
t
黄色の点●は境界条件が必要
15.2 移流方程式の差分解法(2)
時間を前進差分、空間を中心差分で近似すると
rはクーラン数
空間は中心差分時間は前進差分
…(15.7)
比較のため、空間を後退差分にした前述の(15.7)式は
…(15.8)
空間は後退差分
中心差分だとuj+1nが出てくる
0
x
uc
t
u…(15.1)
…(15.2)
Q 𝑢𝑗𝑛+1
𝑢𝑗𝑛𝑢𝑗−1
𝑛
RS
𝑢𝑗+1𝑛
u(x,0)=f(x)
…(15.8)
…(15.7)
rクーラン数
0
x
uc
t
u
…(15.1)…(15.2)
●中心差分だと発散してしまう!!
図15.4初期条件
後退差分だとうまく解が求まる!!
中心差分だと発散してしまう!!
x
x
x
式(15.8)を𝑢𝑗𝑛 をベースとしてgと𝑒
𝑖𝜉∆𝑥で表す。
…(15.10)
𝑢𝑗𝑛+1 : 𝑢𝑗
𝑛にgをかける →gをかけると時間tがひとつ進む
𝑢𝑗+1𝑛 : 𝑢𝑗
𝑛に𝑒𝑖𝜉∆𝑥をかける → 𝑒
𝑖𝜉∆𝑥をかけると空間xがひとつ進む
𝑢𝑗−1𝑛 : 𝑢𝑗
𝑛に𝑒−𝑖𝜉∆𝑥
をかける → 𝑒−𝑖𝜉∆𝑥
をかけると空間xがひとつ戻る
tだけの関数
xだけの関数
定数
式(15.10)を式(15.8)(空間を中心差分にした式)に代入すると
ミスプリ!!マイナス
→1- ‥(A)
の特解を波数ξのフ-リエ級数で表現
iは虚数 n -> (t), jΔx -> x として、離散点を連続関数とすると、
xだけの関数tだけの関数g
xjinn
j egu
…(15.8)…(15.9)
●なぜ発散してしまうのか?
特解はこのgを式(15.9)に代入したもの
フォン・ノイマンの安定性条件:解が有限であるためには
𝑔 は1より大きいのでgは発散してしまう
-
gはΔt進めた時の増幅率。
ミスプリ!!ここはマイナス
Reθ
Im
1
(1, −𝑟sin𝜉∆𝑥)
𝑔…(15.12)
𝑔 = 𝑔 𝑒𝑖𝜃式(15.11)を極形式で表すと、
tan𝜃 = −𝑟 sin𝜉∆𝑥
- ‥(A)
…(15.11)
●なぜ発散してしまうのか? #2
オイラーの公式
小川洋子原作
https://www.amazon.co.jpオイラーの等式01ie
r:クーラン数
初期条件
境界条件
15.3 拡散方程式
↓初期条件
境界条件↑
↑境界条件
14.4 の「線の方法」 時間微分⇒オイラー法時間微分⇒前進or後退差分⇒陽的or陰的
‥(15.13)‥(15.14)
‥(15.15)
2
2
x
u
t
u
Ju
空間は中心差分時間は前進差分
t+Δtの値をx-Δx ,x,tおよびx+Δxの値で表せる!!
𝑟 =∆𝑡
∆𝑥 2⇒rはクーラン数
とは違う 参照式(15.3)
‥(15.16)
R
Q
S
●オイラー陽解法
Q点 P点R点 S点
‥(15.17)
初期条件
‥(15.16)
境界条件
𝑢𝑗𝑛𝑢𝑗−1
𝑛 𝑢𝑗+1𝑛
R
Q
P S
図15.9式(15.16)による解の求め方
このQ点を求める!!𝑢𝑗𝑛+1
図15.8式(15.16)の構造
FTCS(Forward Time Center Space)法 解が得られる条件r<= 1/2の場合
𝑔 = 𝑟 cos 𝜉Δ𝑥 + 𝑖 sin 𝜉Δ𝑥 + cos −𝜉Δ𝑥 + 𝑖 sin −𝜉Δ𝑥 + 1 − 2𝑟
𝑢𝑗𝑛+1 = 𝑟𝑢𝑗−1
𝑛 + 1 − 2𝑟 𝑢𝑗𝑛 + 𝑟𝑢𝑗+1
𝑛
(𝑗 = 1,2,⋯ , 𝐽 − 1)
●拡散・熱伝導方程式のフォン・ノイマンの安定性条件
1 − 2𝑟 + 2𝑟 cos 𝜉Δ𝑥 ≦ 1⇒cos 𝜉Δ𝑥 ≦ 1
最も厳しい条件を考えて⇒𝑟 ≤1
1− −1
𝑢𝑗𝑛𝑢𝑗−1
𝑛 𝑢𝑗+1𝑛
R
Q
P S
𝑢𝑗𝑛+1
𝑟 =∆𝑡
∆𝑥 2
⋯(15.16)
𝑔𝑢𝑗𝑛 = 𝑟 ∙ 𝑒−𝑖𝜉Δ𝑥𝑢𝑗
𝑛 + 1 − 2𝑟 ∙ 𝑢𝑗𝑛 + 𝑟 ∙ 𝑒𝑖𝜉Δ𝑥𝑢𝑗
𝑛
𝑔 = 𝑟(𝑒𝑖𝜉Δ𝑥+𝑒−𝑖𝜉Δ𝑥) + 1 − 2𝑟
…(15.10)
オイラーの公式 𝑒𝑖𝜃 = cos 𝜃 + 𝑖 sin 𝜃
フォン・ノイマンの安定性条件
−1 ≦ 1 − 2𝑟 + 2𝑟 cos 𝜉Δ𝑥 ⇒𝑟 ≤1
1−cos 𝜉Δ𝑥
よって𝑟 ≤1
2
−1 ≦ 𝑔 = 1 − 2𝑟 + 2𝑟 cos 𝜉Δ𝑥 ≦ 1
−1 ≦ cos 𝜉Δ𝑥 ≦ 1より
●1次元熱伝導方程式の変数分離法
変数分離の解を仮定
Sturm-Liouville問題⇒常微分方程式と境界条件を考慮して定数を求める。
両辺を負の定数-λ2とおく。負でないとうまくいかない。
特性方程式が負の2階常微分方程式⇒cosとsinの和正の場合はeλとe-λの和
sinが0を考慮
λ自身は実数n正のみ考える
tの1階常微分方程式⇒解をeptとするとうまくいく。
任意定数Bをつける
既に定まったλを代入
任意定数A×B=C初期条件からCを求める時間増加により指数関数的に0に近づく。
境界条件を考慮
境界条件1次元の熱伝導方程式
2
2
x
u
t
u
0)()(0 t,Lut,u )()()( tTxXt,xu
)()(" 2 xXxX
0sincos)(
0)0(
21
1
LALALX
AX
xx eAeAxX
xAxAxX
21
21
)(
sincos)(
ptetT )(
0sin2 LA
0,1,2...)( nL
n
L
xnAxX
sin)( 2
)()()()( tTx"Xt'TxX
2
tT
t'T
xX
x"X
)(
)(
)(
)(
L
xnCetxu
tL
n
sin),(
2
tL
n
BetT
2
)(
tBetT2
)(
2p
ptpt epe 2
)()( 2 tTt'T
●なぜ (15.9)式で解を波数ξのフ-リエ級数で表現するのか?
xjie
L
xnCetxu
tL
n
sin),(
2
(t)->n, x->jΔxとして離散化
L:波長, ξ:波数(=1/L), ω:角振動数, v:波の位相速度, f:振動数(周波数)
f
vvL
22
f(x)
初期条件
x
u
u=0
x=0 x=L/2ここをL/2とすれば波長と合う
𝑐𝑛 =1
𝐿 0
𝐿
𝑓(𝑥)𝑒−𝑖2𝜋𝐿 𝑛𝑥𝑑𝑥𝑓 𝑥 =
𝑛=−∞
∞
𝑐𝑛𝑒𝑖2𝜋𝐿 𝑛𝑥
オイラーの公式
𝑒𝑖𝑥 = cos𝑥 + 𝑖sin𝑥𝑎𝑛 =2
𝐿 0
𝐿
𝑓 𝑥 cos2𝜋
𝐿𝑛𝑥 𝑑𝑥
𝑏𝑛 =2
𝐿 0
𝐿
𝑓 𝑥 sin2𝜋
𝐿𝑛𝑥 𝑑𝑥
cos𝑥 =1
2(𝑒𝑖𝑥 + 𝑒−𝑖𝑥)
sin𝑥 =1
2𝑖(𝑒𝑖𝑥 − 𝑒−𝑖𝑥)
フーリエ級数
𝑓 𝑥 =𝑎0
2+
𝑛=1
∞
𝑎𝑛 cos2𝜋
𝐿𝑛𝑥 + 𝑏𝑛 sin
2𝜋
𝐿𝑛𝑥
ng
境界条件1次元の熱伝導方程式
2
2
x
u
t
u
0)()(0 t,Lut,u
i :虚数単位
●陰解法
𝑢𝑛に対する連立一次方程式
図15.10 式(15.18)の構造
𝑢𝑗𝑛𝑢𝑗−1
𝑛
𝑢𝑗𝑛−1
𝑢𝑗+1𝑛
これらの点↑を求める!!
R
Q
P S
初期条件
境界条件
‥(15.13)
‥(15.14)
‥(15.15)
2
2
x
u
t
u
時間微分を後退差分で表した式(15.13)の近似
Q点P点R点 S点
‥(15.18)
空間は中心差分時間は後退差分
211
1 2
x
uuu
t
uu n
j
n
j
n
j
n
j
n
j
𝑟 =∆𝑡
∆𝑥 2
𝑢𝑗−1,𝑘(𝜈+1)
𝑢𝑗+1,𝑘(𝜈)
𝑢𝑗,𝑘+1(𝜈)
(0,1)
(0,0)(1,0)
(1,1)
Δx
Δy𝑢𝑗,𝑘−1
(𝜈+1)
j
k
(J,K)番目
(0,0)番目
この式を差分で表すと、
●赤のP点は周りの4点で表される●右上の格子点を(J,K)番目とすると(J-1)×(K-1)元の連立一次方程式●境界a~dの点はすべて既知
図15.11 ポアソン方程式に対する差分格子
15.4 ポアソン方程式の差分解法
),(2
2
2
2
yxfy
u
x
u
‥(15.19)
…(15.20)
NS方程式⇒圧力のポアソン方程式
ラプラシアンフィルタ
𝑢𝑗−1,𝑘(𝜈+1)
𝑢𝑗+1,𝑘(𝜈)
𝑢𝑗,𝑘+1(𝜈)
(0,1)
(0,0)(1,0)
(1,1)
Δx
Δy𝑢𝑗,𝑘−1
(𝜈+1)
j
k
(J,K)番目
(0,0)番目
式(15.20)に対してガウス・ザイデル法の反復式を用いて求める。
(J-1)×(K-1)元の連立一次方程式
𝑢𝑗,𝑘(𝜈+1)
を計算するとき
周りの4点: 𝑢𝑗−1,𝑘(𝜈+1)
𝑢𝑗,𝑘−1(𝜈+1)
𝑢𝑗+1,𝑘(𝜈)
および 𝑢𝑗,𝑘+1(𝜈)
は未知
ガウス・ザイデル法の反復式
…(15.20)
…(15.21)
●ヤコビ法とガウス・ザイデル法の復習 (P54参照)6.1 ヤコビ法 連立1次方程式
第1式をx1について解き, 第n式をxnについて解く
右辺のx1, x2∙∙∙ xnを反復前の値 左辺を反復後の値
…(6.1)
…(6.2)
●例 3×3格子を仮定して、式(15.20)を解く
𝑓 𝑥, 𝑦 = 0, 𝑎 = −4, 𝑏 = 4, 𝑐 = 𝑑 = 0, ∆𝑥 = ∆𝑦 = 1/3と仮定
図15.12 3×3格子
uを速度ポテンシャルφと思う非圧縮性流体の連続の式 div v = 0v:速度ベクトル v = grad φ連続の式をφで表すと 𝛻2𝜑 = 0
タンク内の速度ポテンシャルはいくら?
…(15.20)