• 検索結果がありません。

4.2 熱伝導方程式

4.3.2 主要な 3 つの差分スキーム

から順に考えていこう. では,t, xについてともに前進差分を採用するのだから,

u(t+ ∆t, x)−u(t, x)

∆t +cu(t, x+ ∆x)−u(t, x)

∆t = 0

であるから,差分方程式は,

uk+1j =ukj −c∆t

∆x

(ukj+1−ukj)

となる.これは,前の時刻の2点の値の重み付き平均から1点の値が決まるメカニズムである.

ukj ukj+1 uk+1j

時刻(k+ 1)∆t

時刻k∆t

前の時刻の2点の値の重み付き平均

メカニズムがわかったら,例によって増幅率を計算しよう.

g = 1−c∆t

∆x(exp(iξ∆x)1) = (

1 +c∆t

∆x )

−c∆t

∆xexp(iξ∆x) である.

ここで,λ = ∆t/∆x= const.なる差分スキームを考えることにすると,上の計算から,gは,1 + を中心とする半径の円周上にある.そのようなgに対して,|g|∀ξに対して1 +K∆tで押さえるこ とはできない.従って,不安定スキームであることがわかる.

1 + 0

1

半径

のスキームは,tに関して前進差分,xに関して中心差分近似するスキームである.

u(t+ ∆t, x)−u(t, x)

∆t +cu(t, x+ ∆x)−u(t, x−∆x)

∆t = 0

であるから,差分方程式は,

uk+1j =ukj c 2· ∆t

∆x

(ukj+1−ukj1)

となる.これは,(熱伝導方程式と同じように)前の時刻の3点の重み付き平均から1点での値が決まる スキームである.

ukj1 ukj ukj+1 uk+1j

時刻(k+ 1)∆t

時刻k∆t

前の時刻の3点の値の重み付き平均

メカニズムがわかったら,例によって増幅率を計算しよう.

g = 1 c 2

(∆t

∆x )

(exp(iξ∆x)exp(−iξ∆x)) = 1−ic (∆t

∆x )

sin(ξ∆x) となる.従って,

|g|=

√ 1 +c2

(∆t

∆x )2

sin2(ξ∆x)

となる.ここで,λ = ∆t/∆x = const.なる差分スキームを考えると,max|g| =

1 +c2λ2 > 1となっ て,λによらず不安定なスキームであることがわかる.

ここでρ= ∆t/(∆x)2 = const.なる条件でこの差分スキームを考えると,

|g|=

1 +c2 ∆t

(∆x)2 sin2(ξ∆x)∆t=

1 +c2ρ∆tsin2(ξ∆x)1 + 1 2c2ρ∆t

となるので,定数Kとしてc2rho/2が取れて,von Neumannの条件が満たされ,安定スキームである.

しかし,このスキームは,∆t/∆x= const.なる安定スキームが,もし存在すれば,それに比べると非能 率的である.∆xを小さくすると,∆tをその2乗の割合で小さくしなければならず,計算量が増大する からである.

のスキームを考えよう.tについては前進差分,xについては後退差分近似を行うのであるから,

u(t+ ∆t, x)−u(t, x)

∆t +cu(t, x)−u(t, x−∆x)

∆t = 0

であり,差分方程式は,

uk+1j =ukj −c∆t

∆x

(ukj −ukj−1)

となる.これは,t, xを共に前進差分で近似した場合と似たメカニズムであるが,少し違っている.前の 時刻の2点と言っても,考えている位置とその前の1点での値を利用するわけである.(両方とも前進差 分する場合は,前の1点の値を利用していた.)

ukj1 ukj uk+1j

時刻(k+ 1)∆t

時刻k∆t

前の時刻の3点の値の重み付き平均

メカニズムがわかったら例によって,増幅率を計算しよう.

g = 1−c∆t

∆x(1exp(−iξ∆x)) = (

1−c∆t

∆x )

+c∆t

∆xexp(−iξ∆x)

となる. と同様に幾何的に考えると,gは,1−cλを中心とする半径の円周上に存在する.この円 周がすべて原点中心の半径1の円周内に入るためには,

=c∆t

∆x 1

が必要かつ十分である.従って,λ= ∆t/∆x= const.という差分スキームでは,これが安定性のための 条件となる.

1−cλ 0

1

半径

ここまでc >0としてきた.(本章冒頭に掲げた方程式の形でもc > 0としていた.)もちろんc <0と してもよいが,その場合は右向き進行波ではなく左向き進行波を一般解に持ち,t, x共に前進差分で近似 した方が安定になる.