電 301 数値解析 第 14 回
微分方程式の 数値解法 (4)
電301数値解析(2017)琉球大学工学部電気電子工学科 担当:半塲 1
5
点差分公式の行列表現(1)
•
前回の講義で, 2変数2
階線形楕円型偏微分 方程式の解法として, 5点差分公式v
i+1,j+ v
i−1,j+ v
i,j+1+ v
i,j−1− 4v
i,j= h
2f
i,jを紹介したが, これを行列で表現する方法の 一般はまだ説明していなかった.
•
前回の小テストがこれに対するヒントを与え ているので, まずこれを復習する.5
点差分公式の行列表現(2)
格子点 5点差分公式
g7 g8 g5 v21 v22 g6 g3 v11 v12 g4
g1 g2
g1+v12+v21+g3−4v11=h2f11
g2+g4+v22+v11−4v12=h2f12 v11+v22+g7+g5−4v21=h2f21 v12+g6+g8+v21−4v22=h2f22
5
点差分公式の行列表現(3)
格子点 5点差分公式
v21 g3 v11 v12
g1
g1+v12+v21+g3−4v11=h2f11 第1行目の公式では左の部分を参照する. v11のまわりの要素を足し合わせてから v11の4倍を引いたものがh2f11
と等しいという式. 第2行目以降も同様.
5
点差分公式の行列表現(4)
この場合の5点差分公式の行列表現は以下の通り.
4 −1 −1 0
−1 4 0 −1
−1 0 4 −1
0 −1 −1 4
v11 v12 v21
v22
=
g1+g3 g2+g4 g5+g7
g6+g8
−h2
f11 f12 f21
f22
vijがv11,v12,v21,v22という順で並べられていることが重要. これを一般化する([山本]).
5
点差分公式の行列表現(5)
• x軸,y軸にそれぞれNx個,Ny個の格子点が取られているものと する. 前回と同様に,格子点を, (1,1), . . . , (Nx,1), . . . , (1, Ny), . . . , (Nx, Ny)であらわす.
• 境界を, (1,0), . . . , (Nx,0), (1, Ny+ 1), . . . , (Nx, Ny+ 1) (0,1), . . . , (0, Ny), (Nx+ 1,1), . . . , (Nx+ 1, Ny)とし(次ページ図),縦 ベクトルv= (v1, . . . , vNxNy)Tをその次のページのように定義 する. 続いて,同じ並べ方で縦ベクトルfを構成する. さらに, 行列A,ベクトルgを後述のように構成すると・・・
5
点差分方程式はAv = g − h
2f
と書ける(1,1) (2,1) (Nx,1) (1,2) (2,2)
(1,Ny) (2,Ny) (Nx,Ny)
(Nx,2)
(1,0) (2,0) (Nx,0)
(1,Ny+1) (2,Ny+1) (Nx,Ny+1)
(0,1) (0.2) (0,Ny)
(Nx+1,1) (Nx+1,Ny)
(Nx+1,2)
U
(1,Ny+1) (2,Ny+1) (Nx,Ny+1)
(0,1) (0.2) (0,Ny)
(Nx+1,1) (Nx+1,Ny)
(Nx+1,2)
v
1v
Nxv
Nx+1v
2Nxv
(Ny-1)Nx+1
v
NyNx
Nx次の正方行列Hを次式左のように定義する. また,IをNx次の 単位行列とする.これらを使って,NxNy次の正方行列Aを次式右の ように定義する.
H=
4 −1
−1 4 −1 . .. ... ...
. .. ... −1
−1 4
,A=
H −I
−I H −I . .. ... ...
. .. ... −I
−I H
g= (g01+g10, g20, . . . , gNx−1,0, gNx,0+gNx+1,1;g0,2,0, . . . ,0, gNx+1,2; . . .;g0,Ny−1,0, . . . ,0, gNx+1,Ny−1;
g0,Ny+g1,Ny+1, g2,Ny+1, . . . , gNx−1,Ny+1, gNx,Ny+1+gNx+1,Ny)T とする.
Lax
の同等定理(1)
•
独立変数の一部に時間を含む方程式(放物型,
双曲型など)は, 解が時間に関して正の方向 に進展してゆくという楕円型とは異なる性質 があるため, その数値解の収束に関して楕円 型と異なる分析が必要になる.•
これに関し, Laxの同等定理と呼ばれる事実 が知られている([河村]).
Lax
の同等定理(2)
•
線形偏微分方程式∂u
∂t = Lu
の初期値問題を 考える. 独立変数を(x, t)
とする.L
は(x
に 関する)線形微分作用素で,初期値はこの偏微 分方程式が一意解を持ち, その解がパラメー タに対して連続となるように取られているも のとする.Lax
の同等定理(3)
•
格子点におけるu(x
j, t
n)
の近似解v(x
j, t
n)
を 求める問題を考える(t
n+1− t
n= ∆
t, x
j+1− x
j= ∆
x).
∆xと∆tは独立ではなく,ある関数h(ただしlimθ→0h(θ) = 0) が存在し, ∆x=h(∆t)となっているものとする.
• ∂u
∂t = Lu
を次のように差分近似する.v(x
j, t
n+1) = S(∆
x, ∆
t)v(x
j, t
n+1)
Lax
の同等定理(4)
• u(x, t + ∆
t) − S(h(∆
t), ∆
t)u(x, t) = o(∆
t)
となるとき, この公式はもとの偏微分方程式 に適合するという.S(∆x,∆t)はLに対応する差分演算子である.
f(θ) =o(θ)という記法は, limθ→0,θ6=0f(θ)/θ= 0を意味する.
• ∃T > 0, ∀n, ∀∆
t, 0 < n∆
t< T ⇒ kSk < C
となるとき,S
は安定であるという. ただしkSk
は作用素ノルム.Lax
の同等定理(5)
• Lax
の同等定理が保証するのは次の事実で ある:v (x
j, t
n+1) = S(∆
x, ∆
t)v (x
j, t
n+1)
が∂u
∂t = Lu
に適合し, 安定であれば, ∆t→ 0
とするとv(x
j, t
n)
はもとの偏微分方程式の解 に収束する([河村]).
放物型偏微分方程式の数値解法
(1)
•
議論の簡単のため,空間を1
次元に限り,独立 変数を(x, t)
とし(x ∈ [0, 1], t ∈ [0, T ]),
定係 数の2
階線形放物型偏微分方程式の差分法に よる解法を述べる. 時刻t = 0
における初期 条件u(x, 0) = a(x)
と, 境界条件u(0, t) = 0,
u(1, t) = 0
が与えられているものとする.•
以下の議論の典拠はおもに[田端][河村]
放物型偏微分方程式の数値解法
(2)
∂u
∂t = ∂
2u
∂
2x +f, u(x, 0) = a(x), u(0, t) = u(1, t) = 0.
x=0
t
u(x,0)=a(x)
x=0
x=1 x=1
t=0 t=T
• 2変数の定係数2階線形放物型偏微分方程式は∂u∂t =a∂∂22ux+f であるが, τ = atとすると, ∂u∂τ = ∂u∂τ∂τ∂t = a∂u∂τ であるから, a∂u∂t =a∂∂22ux+fとなり,この両辺をaで割ってf¯=f /aとすれ ば, ∂u∂t =∂∂22ux+ ¯fという形になる. この講義ではこの形への変 形はすでに済んでいることを前提としている.
• 熱伝導方程式の場合は,f(x, t)は外部熱源に相当する.
• 境界条件がu(0, t) =g0(t),u(1, t) =g1(t)となっている場合には,
¯
a(x) =a(x)−(1−x)g0(0)−xg1(0), ¯f=f−(1−x)g0′(t)−xg1′(t)と して,∂w∂t =∂∂22wx+ ¯f, w(x,0) = ¯a(x), w(0, t) =u(1, t) = 0を解き, u(x, t) =w(x, t) + (1−x)g0(t) +xg1(t)とすれば,もとの問題の 解が得られる. よって, ∂u
∂t =∂2u
∂2x+f, u(x,0) =a(x), u(0, t) =
u(1, t) = 0.という単純化した問題を考えても一般性は失われ
ない.
放物型偏微分方程式の数値解法
(4)
•
∂u∂t=
∂∂22ux+ f
を離散近似する単純な方法: ∂u∂t を前進差分近似, ∂∂22uxを中心差分近似.•
これをEuler
の陽解法という.•
安定条件: ∆t/(∆
x)
2≤ 1/2
放物型偏微分方程式の数値解法
(4)
•
前進Euler
法の問題を解決するため, ∂v∂t=
∂2v
∂2x
+f
の右辺の近似を評価する際に, (xj, t
n+1)
と(x
j, t
n)
における重み付き平均を取る方法 が用いられる. これをθ
法という.θ
は0
以 上1
以下のパラメータである. 具体的な形は 次ページに示す通り.v(x
j, t
n+1) − v(x
j, t
n)
∆
t= θ v(x
j+1, t
n+1) − 2v (x
j, t
n+1) + v(x
j−1, t
n+1)
∆
2x+ (1 − θ) v(x
j+1, t
n) − 2v(x
j, t
n) + v(x
j−1, t
n)
∆
2x+ θf (x
j, t
n+1) + (1 − θ)f(x
j, t
n)
放物型偏微分方程式の数値解法
(6)
• θ = 0
とした場合が前進Euler
法,θ = 1
と した場合が後退Euler
法である.θ = 1/2
と した場合はCrank-Nikolson
法である.• θ ≥ 1/2
とすれば, この公式は∆
t/(∆
x)
2≤
1/2
によらず安定となる. とくに,θ = 1/2
と したCrank-Nikolson
法は,安定で時間精度が 良いことから, しばしば用いられる([河村]).
双曲型偏微分方程式の数値解法
(1)
• 2
変数の定係数2
階線形双曲型偏微分方程式 の代表格である波動方程式∂∂t2u= c
2∂∂22ux を解 くためには数値解法は必ずしも必要でない.•
順番を入れ換えて(
∂t∂− c
∂x∂)(
∂t∂+ c
∂x∂)u = 0,
(
∂t∂+ c
∂x∂)(
∂t∂− c
∂x∂)u = 0,
と書いてみると・・・双曲型偏微分方程式の数値解法
(2)
•
∂u∂t− c
∂u∂x= 0,
∂u∂t+ c
∂u∂x= 0
という2
個の偏 微分方程式が出て来る.•
解はg
1(x − ct)
とg
2(x + ct)
という形の関数 の線形結合で書ける.g
i(·)
は任意関数である(i = 1, 2).
双曲型偏微分方程式の数値解法
(3)
•
数値的に解くときには, ∂u∂t− c
∂u∂x= 0
あるい は∂u∂t+ c
∂u∂x= 0
を離散化する. どちらでも同 じことなので, 後者を例に取って説明する.•
時間軸については前進差分,x
軸については 後退差分で近似すると,v(xj,tn+1)−v(xj,tn)
∆t
+ c
v(xj,tn)−v(x∆ j−1,tn)x
= 0.
双曲型偏微分方程式の数値解法
(4)
• µ = c∆
t/∆
xとおくと,先の差分方程式は,v(x
j, t
n+1) = (1 − µ)v(x
j, t
n) + µv(x
j−1, t
n)
となる.µ
をクーラン数(Courant Num- ber)
という.•
上述の公式が安定であるためのの十分条件はµ ≤ 1
である(ただし, ∆
x> 0, ∆
t> 0
であ ることに注意).双曲型偏微分方程式の数値解法
(5)
•
上述の公式ではµ > 0
でなければならない のだが, この条件を無視してµ = 0
とすると,v(x
j, t
n+1) = v (x
j, t
n)
となり, 数値解の波形 は時間によらず一定になってしまう.•
逆にµ = 1
とすると(これは許容される),
先の公式は
v(x
j, t
n+1) = v(x
j−1, t
n)
となる. こ れは厳密解の挙動(g
1(x − ct))
と一致する.差分法に関する補足
(1)
•
放物型および双曲型の方程式の数値解法の公 式を行列の形に書き直す手順は楕円型と同様 なので,繰り返し述べることはしない.•
熱伝導方程式を不適切なパラメータを持つ陽的
Euler
法で解くと, 数値解が発散することがあることが知られている
([河村]).
差分法に関する補足
(2)
•
線形/非線形にかかわらず,あるいは連立偏微 分方程式であっても, 差分法によって対応す る離散型公式を作ることはできるし, 高次の 差分を使うことも可能であるが,数値解が厳 密解を近似しているか否かは別問題である.差分法に関する補足
(3)
•
差分法の弱点は複雑な形状の領域における数 値解を求めにくいことであるが,非線形座標 変換によって矩形領域を曲面に投影すること で, ある程度複雑な領域における求解に用い ることもできる([河村])
が, 有限要素法の方 がより柔軟である.有限要素法
(1)
•
有限要素法は工学の分野で偏微分方程式の近 似解を求める実用解法として発展した手法.• [Gupta and Meek]
によると, 有限要素法の 嚆矢はCourant(1942)
だが, その発展はAr- gyris (1954), Turner (1956), Clough (1960), Zienkiewicz and Cheung (1965)
などによる.上記で
Courant
以外は工学系.有限要素法
(2)
•
有限要素法は,前回の講義で述べた弱形式の 近似解を求める手法のひとつ.•
議論の簡単のため, 2変数の楕円型偏微分方 程式を例に取って, 弱形式の近似解を求める 問題を考える.x = (x, y)
とし, 以下しばし ば引数x = (x, y)
を省略する.有限要素法
(3)
•
以下,R
D
uv dx
を(u, v)
と書く. また,ベクト ル値関数u
とv
に対し,R
D
u
Tv d x
を( u , v )
と書く. 以下では, ベクトルはすべて列ベク トルであるものとする.• u
の勾配ベクトルを∇u
と書く. 勾配ベクト ルは列ベクトルであるものとする.有限要素法
(4)
• ∂
2u
∂x
2+ ∂
2u
∂y
2= f (x, y ) ((x, y) ∈ U ), u = 0 ((x, y) ∈ ∂U)
を解くことを考える. 前回の 一般論において,a
11= a
22= 1, a
12= a
21= 0, b
1, b
2= 0, c = 0
とした場合である.•
対応する弱形式は, (∇u,∇v) = (f, v)
である.有限要素法
(5)
•
弱形式に基づく求解では, 境界条件を満たす という条件の下で解を構成する必要がある.•
境界条件として∂U
の外向き単位法線ベクト ルに関する方向微分の値を考えることもあり, その場合には弱形式の右辺の形が変わるが, この講義では立ち入らない.有限要素法
(6)
•
弱形式による求解は,∀v, (∇u, ∇v) = (f, v)
となるu
を求める問題に帰着されるのだが, この近似解法として,u, v
がともに既知の関 数系{φ
i: 1 ≤ i ≤ N }
の線形結合で表現で きると仮定し(u = P
i
p
iφ
i, v = P
i
q
iφ
iとす る), 係数{c
i: 1 ≤ i ≤ N }
を求めるという方 法がある. この手法をGalerkin
法という.有限要素法
(7)
• Galerkin
法について説明する. 弱形式にu, v
の近似式を代入すると,P
Ni,j=1
p
iq
j(∇φ
i, ∇φ
j) = P
Nj=1
q
j(f, φ
j)
となる.a
ij= (∇φ
i, ∇φ
j),
b
j= (f, φ
j)
とし,A = (a
ij)
1≤i,j≤Nをa
ijを集 めた行列,b , p , q
を対応する成分を集めたベ クトルとすると,p
TAq = b
Tq
となる. この 問題ではA
は対称行列である.有限要素法
(8)
• v(の展開係数)
は任意だから,解くべき問題は,∀q, p
TAq = b
Tq
となるベクトルp
を求める 問題に帰着される. このためには,Ap−b = 0
となればよい. 換言すると, 偏微分方程式の 数値解を求める問題が連立一次方程式を解く 問題に変換されたことになる. ただし, 別途 境界条件をチェックしなければならない.有限要素法
(9)
•
有限要素法はは, Galerkin法の特別な場合で, 関数系φ
iの取り方が名前の由来になっている.•
有限要素法では, まず, 領域U
を有限個の要 素と呼ばれる集合に分割する.• R
nで要素を定義するには単体という概念が 必要だが,繁雑なので,議論をR
2に限定する.有限要素法
(10)
R
2における要素は典型的には多角形(とくに三角
形)である. ただし, 隣接する要素は, 内点を共有 せず, 辺および頂点を共有し,U
全体を覆わなけれ ばならない.U
要素有限要素法
(11)
•
続いて, 関数φ
iの構成法を説明する(要素が
三角形の場合に限る).•
要素をひとつ選び, この3
個の頂点を節点と する. 3個の節点のうちどれか1
個で1
とな り, 残りの2
点で零となる線形関数を3
個取 る. これを内挿関数と呼ぶ. 1要素あたり3
個の内挿関数ができる.x y u
1
x y u
1
x y u
1
要素 要素 要素
このようにすると, 隣接する要素は節点を共有し, 節点で
1
となる内挿関数どうしは連続に結合でき る. このようになることを適合という.隣接要素で 内挿関数を作り まとめる
有限要素法
(14)
• U
が有限個の三角形に分割されているものと し, それらの頂点を集めてから∂U
上にある ものを除き, 通し番号を付ける.• ∂U
上の頂点を除くのは,このようにすると, 今考えている境界条件(∂U
上でu = 0)
を自 動的に満たすことができるからである.有限要素法
(15)
•
頂点がN
個あるものとする. 1≤ i ≤ N
に対 し, 第i
番目の頂点を考える.•
頂点i
を含む要素がK
個あるものとし,これ をΓ
i1, . . . , Γ
iK とする.有限要素法
(16)
• 1 ≤ k ≤ K
なる各k
に対し, Γikで定義された 内挿関数のうち, 頂点i
で1
となるものを選 び, それらをまとめて前々ページのような関 数を作る. さらに, この関数のU \ ∪
Ki=1Γ
ik における値を零としたものが, 有限要素法に おける関数φ
iである. すなわち, 内挿関数を まとめて関数φ
iを作る有限要素法
(17)
• 節点として要素の頂点を選択しないこともある. この 場合,隣接する要素Aと要素Bの共有する頂点をcと したとき,要素Aで定義され頂点cで零とならない内 挿関数φAと要素Bで定義され頂点cで零とならない 内挿関数φBが連続に結合できないことがあり得る. こ のような内挿関数の取り方を非適合という. 非適合な 内挿関数が利用されることもある.
有限要素法
(18)
•
有限要素法はGalerkin
法の一種だったから,a
ij= (∇φ
i, ∇φ
j), b
j= (f, φ
j)
を計算して,Ap − b = 0
をp = (p
1, . . . , p
N)
T について解 き,v = P
ni=1
p
iφ
iを近似解とすれば良い.•
境界条件が上述の問題と異なる場合には,そ れに応じた工夫が必要(文献を参照).
有限要素法
(19)
• φ
iはΓ
i1, . . . , Γ
iK 以外では零で, 1≤ k ≤ K
に対し, Γik上で線形関数だから, Γik上では∇φ
iは定数ベクトルであり,よって, (∇φi, ∇φ
j)
は, 数値積分を用いることなく計算できる.• (f, φ
i)
については数値積分が必要となる可能性がある.
有限要素法
(20)
• 後で必要になるので, 1次元の有限要素法における要素, 節点,内挿関数,φiについて述べる. ただし,内挿関数 は線形関数とし,適合の条件を満たす内挿関数に議論 を限定する.
• 1次元の有限要素法では,領域はRnの(有界)閉区間で, 節点はその区間に取られた有限個の点である. 節点が x1, . . . , xNという順に並んでいるものとすると,要素は 閉区間[xi, xi+1]である(1≤i≤N−1).
有限要素法
(21)
• 内挿関数としては,各要素ごとに, その左端で1, 右端 で0となる関数と,その左端で0,右端で1となる関数 を取る.
• 各節点で, その点で1となる内挿関数を集めて関数φi
を作ることは2次元の場合と同じ.
要素1 要素2 要素3 節点1 節点2 節点3 節点4
0
u 1
関数1-1 内挿関数関数1-2
関数2-1
関数2-2 関数3-1 関数3-1
節点1 節点2 節点3 節点4
有限要素法
(23)
•
次に, 2変数の放物型偏微分方程式を有限要 素法で解く方法を述べる[Quarteroni].
空間 は1
次元であるが, さらに前回の一般論にお いて,a
11= 1, b
1= 0, c = 0
とした場合を考 えると,対応する弱形式は次の通りである.∂u
∂t , v
+ ∂u
∂x , ∂v
∂x
= (f, v)
有限要素法
(24)
•
楕円型の場合と同様に, 節点をN
個とし,関 数v
を関数{φ
i(x) : 1 ≤ i ≤ N }
の線形結合 であらわす(x
が1
次元で,φ
i(x)
は上述の関 数).v = P
Ni=1
q
iφ
i(x)
とする.• u =
N
X
i=1
u
i(t)φ
i(x).
とする(係数が時変).
有限要素法
(25)
• m
ij= (φ
i, φ
j), a
ij= (
dφdxi,
φdxj), b
j= (f, φ
j)
と おく.M = (m
ij)
1≤i,j≤N, A = (a
ij)
1≤i,j≤Nを, これらの要素をまとめた行列とする. ま た,
b = (b
1, . . . , b
N)
T とする.u(t) = (u
1(t), . . . , u
N(t))
T, q = (q
1, . . . , q
N)
T とする.•
これらを使い,u, v
を弱形式に代入すると・・・有限要素法
(26)
• ( du
dt )
TM q + u
TAq = b
Tq.
これが任意のq
に対して成り立たなければならないから,M , A
が対称行列であることを使うと,解くべき 方程式は,M d u
dt + Au = b
となる. すなわち, 偏微分方程式が常微分方程式に帰着され たことになる.
有限要素法
(27)
上述の常微分方程式の数値解法は何でもよいので あるが, ここでは
θ
法について述べる.θ
法は, こ の問題では次の形を取る.M u(t
n+1) − u(t
n)
∆
t+ A (θu(t
n+1) + (1 − θ))u(t
n))
= (θ b (t
n+1) + (1 − θ) b (t
n))
有限要素法
(28)
•
差分法におけるθ
法と違う式に見えるかもし れないが,t
n+1とt
nにおける関数の評価値の 重み付き平均を取るという意味で, 同じ方法 である.• θ
法においてθ = 0
とすると前進Euler
法,θ = 1
とすると後退Euler
法,θ = 1/2
とする とCrank-Nikolson
法である.有限要素法
(29)
•
差分法と同様に,θ ≥ 1/2
では上述の公式は 無条件安定であるが, 0≤ θ < 1/2
では条件 が必要になる. この条件は,Aw = λM w
と いう一般化固有値問題の解を使って定式化さ れるが,詳細は略す([Quarteroni]
参照).有限要素法
(30)
•
続いて,双曲型方程式を有限要素法を用いて 解く手法について簡単に触れる[Grossmann et al].
双曲型と同様に,単純化のために,a
11= 1, b
1= 0, c = 0
とした場合を考える. 弱形式 は∂
2u
∂t
2, v
+ ∂u
∂x , ∂v
∂x
= (f, v)
である.有限要素法
(31)
•
放物型の場合と同様に,u =
N
X
i=1
u
i(t)φ
i(x).
とする
(係数が時変).
放物型の場合と同じ行列とベクトルを用いることにすると, 解くべき 方程式は,
M d
2u
d
2t + Au = b
となる. あとは 常微分方程式の数値解法を用いればよい.有限要素法
(32)
•
有限要素法は1
階の(連立)
偏微分方程式を解 くためにも利用可能である.• ∂u
∂t +a ∂u
∂x +bu = f
を解くことを考える. これ が成り立つなら, 任意のv
に対して ∂u∂t, v
+ a
∂u∂x, v
+ b(u, v ) = (f, v)
である(上述の偏
微分方程式に対応する弱形式).有限要素法
(33)
•
上記のように弱形式は簡単に求められるのだ が,これに標準的な有限要素法を適用すると, 効率が必ずしも良くないことが知られている([Quarteroni]).
この問題を解決するために,streamline diffusion finite element method,
不連続
Galerkin
法に基づく有限要素法などといった手法が用いられる
([Quarteroni]).
有限要素法