• Tidak ada hasil yang ditemukan

時間差分スキーム - 北海道大学

N/A
N/A
Protected

Academic year: 2024

Membagikan "時間差分スキーム - 北海道大学"

Copied!
9
0
0

Teks penuh

(1)

時間差分スキーム

この章では独立変数,従属変数がともに1つの常微分方程式について考える. なぜな ら1次元線形移流方程式も連立常微分方程式を解く問題に帰着されるからである.

7つの時間差分スキームを具体的な常微分方程式にあてはめて,スキームの安定性 と位相の振る舞いについて考える. この章で取り上げる常微分方程式は,振動方程 式と摩擦方程式である.

dU

dt +iωU = 0, (1)

dU

dt +αU = 0. (2)

時間差分スキームの定義

以下のような常微分方程式を考える.

dU

dt =f(U, t). (3)

微分方程式(3)の解をU(t)とし,U(nt)における近似的な解をUnと表記する. 時 間差分スキームを適用した差分式が,

Un+1 =

N k=1

ak1Unk+1

+ ∆tf(Un+1, Un, Un1,· · · , UnN+1,

(n+ 1)∆t, nt,(n−1)∆t,· · ·,(n−N+ 1)∆t) (4) と書けるとき, これを N 段階 (N-step) スキーム1 ) という. すなわち, 時刻t = (n+ 1)∆tUn+1を求める差分式に,いくつの異なる時刻のUnが現れているか, ということである. akは定数であり,f はある既知の関数である. f の中にUn+1を 含まない差分スキームを陽的なスキーム(explicit scheme)といい,含む差分スキー ムを陰的なスキーム(implicit scheme)という. また,段数(stage)とはUnからUn+1 を計算するのに関数f を何回計算するかを表す.

1 )Nレベル(N-level)スキームということもある.

(2)

1 段階 (1-step) スキーム

1段階スキームとは, Un+1Unを用いて求めるスキームである. 本節で扱う1段 階スキームは,

オイラースキーム(前進差分スキーム)

後退差分スキーム

台形スキーム(修正オイラースキーム)

松野スキーム(前進・後退スキーム)

ホインスキーム

の5つである. この5つのスキームをそれぞれ紹介し,その誤差を考察する.

オイラースキーム(前進差分スキーム)

Un+1−Un

t =fn, すなわち,

Un+1 =Un+ ∆tfn. (5) ただし,fn =f(Un, nt)である. オイラースキームの打ち切り誤差εオイラーは次の とおりである. まずU((n+ 1)∆t)をntのまわりでテイラー展開して,

U((n+ 1)∆t) = U(nt) + dU dt

nt

t+1 2

d2U dt2

nt

(∆t)2+· · · より,

εオイラー= Un+1−Un

t −fn

= dU dt

nt

+1 2

d2U dt2

nt

t+· · · −fn

= 1 2

d2U dt2

nt

t+· · · . ゆえに,

(3)

後退差分スキーム

Un+1−Un

t =fn+1,

Un+1 =Un+ ∆tfn+1. (6) 但し,fn+1 =f(Un+1,(n+ 1)∆t)である. 後退差分スキームの打ち切り誤差ε後退は 次の通りである.

ε後退= Un+1−Un

t −fn+1

= 1

t [

Un+1 (

Un+1 dU dt

(n+1)∆t

t+1 2

d2U dt2

(n+1)∆t

(∆t)2 − · · · )]

−fn+1

=1 2

d2U dt2

(n+1)∆t

t+· · · . ゆえに,

ε後退 =O(∆t).

(6)式は求めたい値であるUn+1自体が右辺に含まれている. よって後退差分スキー ムは陰的なスキームである.

台形スキーム

Un+1−Un

t = 1 2

(fn+fn+1) , Un+1 =Un+1

2∆t(

fn+fn+1)

. (7)

台形スキームの打ち切り誤差ε台形は次の通りである.

ε台形 = Un+1−Un

t 1 2

(fn+fn+1)

= 1 2

Un+1−Un

t 1 2fn +1

2

Un+1−Un

t 1 2fn+1.

(4)

ここで右辺第1項及び第2項はεオイラー,ε後退 に等しいので, ε台形 = (εオイラー+ε後退)

2

= 1 2

{(1 2

d2U dt2

nt

t+ 1 3!

d3U dt3

nt

(∆t)2+· · · )

+ (

1 2

d2U dt2

(n+1)∆t

t+ 1 3!

d3U dt3

(n+1)∆t

(∆t)2· · · )}

ここで ddt4U4

nt ddt4U4

(n+1)∆tは高々∆t程度だと見積もられるため, 2階微分の項は

O(∆t2)となり,結局

ε台形 = 1 3!

d3U dt3

nt

(∆t)2+· · · .

ε台形 =O(∆t2).

台形スキームは(7)式も求めたい値であるUn+1自体が右辺に含まれている. よっ て台形スキームは2次の精度を持つ陰的なスキームである.

松野スキーム(前進・後退スキーム)

松野スキームは1-step, 2-stage (1段階2段)のスキームである.

U =Un+ ∆tfn,

Un+1 =Un+ ∆tf. (8) 但し,f =f(U,(n+ 1)∆t)である. 松野スキームの打ち切り誤差ε松野は次のとお りである.

f =fn+ ∂f

∂U

∂U

∂tt+ ∂f

∂tt+O(∆t2)

=fn+ (∂f

∂U

∂U

∂t + ∂f

∂t )

t+O(∆t2),

Un+1 =Un+ dU dt

t+ 1 2

d2U dt2

t2+O(∆t3)

(5)

であるため,

ε松野 = Un+1−Un

t −f

= dU dt + 1

2 d2U

dt2t+O(∆t2) [

fn+ (∂f

∂U

∂U

∂t + ∂f

∂t )

t+O(∆t2) ]

= [1

2 d2U

dt2 (∂f

∂U

∂U

∂t + ∂f

∂t )]

t+O(∆t2)

=O(∆t).

ゆえに,松野スキームは1次の精度をもつ.

ホインスキーム

修正オイラースキームとも, 2次のルンゲクッタスキームとも呼ばれる.

U =Un+ ∆tfn, Un+1 =Un+1

2∆t(fn+f). (9) 但し,f =f(U,(n+ 1)∆t)である. ホインスキームの誤差εホインは松野スキーム の時と同様にして,

f =fn+ (∂f

∂U

∂U

∂t + ∂f

∂t )

t+O(∆t2), Un+1 =Un+ dU

dt

nt

t+ 1 2

d2U dt2

nt

t2+O(∆t3)

なので, d

dtf(U, t) = ∂f

∂U dU

dt + ∂f

∂tdU

dt =f に注意すると, εホイン= Un+1−Un

t 1

2(fn+f)

= dU dt +1

2 d2U

dt2t+O(∆t2) [

fn+ 1 2

(∂f

∂U dU

dt + ∂f

∂t )

t+O(∆t2) ]

= 1 2

[d2U dt2

(∂f

∂U dU

dt +∂f

∂t )]

t+O(∆t2)

= 1 2

d dt

(dU dt −f

)

t+O(∆t2)

=O(∆t2).

ゆえにホインスキームは2次の精度をもつ.

(6)

2 段階 (2-step) スキーム

Un+1を求める式に2つのUi (i≤n)が現れるスキーム. ただし, 1ステップ目の 計算(U0 からU1を求めるとき)には使えない. 本節では,

リープフロッグスキーム

アダムス-バッシュフォーススキーム

の2つのスキームを紹介し,それぞれの精度について考察する.

リープフロッグスキーム(Leapfrog scheme)

Un+1 =Un1+ 2∆tfn (10) 打ち切り誤差は,

Un+1 =Un+ dU dt

nt

t+1 2

d2U dt2

nt

(∆t)2 + 1 3!

d3U dt3

nt

(∆t)3+O(∆t4), Un1 =Un dU

dt

nt

t+ 1 2

d2U dt2

nt

(∆t)2 1 3!

d3U dt3

nt

(∆t)3+O(∆t4) より,

εleap = Un+1−Un1 2∆t −fn

= dU dt

nt

+ 1 3!

d3U dt3

nt

(∆t)2+O(∆t4)−fn

=O(∆t2).

アダムス-バッシュフォーススキーム(Adams-Bashforth scheme)

ここでは2次精度のアダムス-バッシュフォーススキームを紹介する.

Un+1 =Un+ ∆t (3

2fn1 2fn1

) .

右辺第2項の段階数を増やすことで精度を上げることができる2 ). 打ち切り誤差は, fn1 =fn

(∂ f

∂U dU

dt + ∂ f

∂t )

t+O(∆t2)

2 )たとえば4次精度のものもある. 4次精度のアダムス-バッシュフォーススキームは次のとおり である.

t

(7)

より,

εAB = Un+1−Un

t (3

2fn 1 2fn1

)

= dU dt

nt

+ 1 2

d2U dt2

nt

t− {

fn+1 2

(∂ f

∂U dU

dt + ∂ f

∂t )

t+O(∆t2) }

+O(∆t2)

= 1 2

d dt

(dU dt −f

)

t+O(∆t2)

=O(∆t2).

アダムスーバッシュフォーススキームは段階数と段数が一致するスキームである.

(8)

スキームのまとめ

1 段階スキーム

オイラースキーム

Un+1 =Un+ ∆tfn, fn = (Un, nt),

ε =O(∆t).

後退差分スキーム

Un+1 =Un+ ∆tfn+1, fn+1 = (Un+1,(n+ 1)∆t),

ε=O(∆t).

台形スキーム

Un+1 =Un+1 2∆t(

fn+fn+1) , ε=O(∆t2).

松野スキーム

U =Un+ ∆tfn, Un+1 =Un+ ∆tf,

f = (U,(n+ 1)∆t), ε =O(∆t).

ホインスキーム

U =Un+ ∆tfn, Un+1 =Un+1

2∆t(fn+f), f = (U,(n+ 1)∆t),

ε=O(∆t2).

(9)

2 段階スキーム

リープフロッグスキーム

Un+1 =Un1+ 2∆tfn, ε=O(∆t2).

アダムス-バッシュフォーススキーム Un+1=Un+ ∆t

(3

2fn1 2fn1

) , ε=O(∆t2).

Referensi

Dokumen terkait

今後の方針 • 差分法を用いた雲対流モデル deepconv に金星の雲物理を組み込む – Baker and Schubert 1998 を再計算する – Imamura and Hashimoto 2002 をレビュー し、 H2SO4 雲について学ぶ • 金星探査機 Akatsuki のデータとシミュ レーション結果との比較検討...

拡散方程式の陰的数値解法 拡散方程式の後退差分スキーム 以下の1次元拡散方程式を考える.. 1式を時間方向には1段階差分スキーム,空間方向には 2次精度中心差分を用い

リープフロッグスキームの安定条件は ω∆t ≤1

1つの数は定 まったビット数の1語に収められることになっているため3 ,1語で表現しうる数の 種類はこのビット数に応じて高々232個とか264個とか言うように限られたものに なる... 図 1.2: IEEE方式マイクロソフト社製 BASIC等の数の内部表現の概念図伊理 正夫, 1985:数値計算の常識より

参考文献 川畑 拓哉, 2011,「有限差分法の基礎1」 URL:http://www.ep.sci.hokudai.ac.jp/˜gfdlab/comptech/resume/0630/2011 0630- takuya.pdf Mesinger, F., and Arakawa, A., 1976, Numerical methods used in

管の中の各気体の流量 F は拡散係数 D と気体の数密度の勾配、管の断面積の積で与え られる。各容器内では混合気体の密度は一様に保たれ 、細い管の中では数密度の勾配は 場所によらず一定とする。時刻 t>0 における容器1と容器2のCOガ スの数密度を それぞれ 、n1t、n2tとし 、容器1から容器2へ流入するCOガ スの流量 Ftを求 めよ。 1-2..

2.3 三段階スキーム リープフロッグスキームleapfrog scheme 振動方程式に対してリープフロッグスキームをあてはめた差分式は Un+1 =Un−1+ 2iω∆tUn... λ2に対応する数値解を 計算モードcomputational

スペクトル法Spectral method 従属変数を方程式に入っている演算子に対して性質の良い関数1 となる直交関数を 用いた級数に展開し,展開係数の時間発展を解く方法である.. この常微 分方程式の微分を差分で置き換え,展開係数の数だけの連立代数方程式に直して数