• Tidak ada hasil yang ditemukan

時間差分スキームのまとめ - 北海道大学

N/A
N/A
Protected

Academic year: 2024

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

Copied!
14
0
0

Teks penuh

(1)

時間差分スキームのまとめ

振動方程式

dU

dt =iπU, U(0) = 1 (1)

について, 様々な時間差分スキームを適用して数値的に計算した結果をまとめる. 計算は全て単精度で行い,計算時間は0≤t≤4とした. グラフは実線が数値解,破 線が解析解を表す. なおp=πtとする.

オイラースキーム

式(1)にオイラースキームを用いて差分化した式は

Un+1 = (1 +ip)Un.

よって増幅係数は

λ= 1 +ip.

t = 2×102,t = 4×102 で計算した結果(それぞれ200ステップ目, 100ス テップ目を計算した値)を以下に示す. ただし,絶対誤差については位相のずれの影 響を少なくするため,それぞれ30ステップ目, 15ステップ目の値を表記している.

t 解析解 数値解 増幅係数 増幅係数解析値 絶対誤差 2×102 1.00000000 1.4827092 1.0019721 1.0019720 -1.63158774E-2 4×102 1.00000000 2.1842029 1.0078648 1.0078648 -2.80020535E-2

時間の刻み幅が2倍になると,絶対誤差が約2倍になっている. これは誤差がO(∆t) のオーダーを持つ事による. 増幅係数の1からのずれは約4倍になっている. これ は|λ|= 1 +O(∆t2)だからである. また

θ 1

(2)

時間差分スキーム 振動方程式への応用 2

となるから, 数値解の位相は解析解の位相より遅く進んでいる. このことは∆t = 2×101で計算した結果のグラフ(図2)を参照.

図1:オイラースキームを用いて,∆t= 2×102で200ステップ計算した結果.

図2: オイラースキームを用いて,∆t= 2×101で20ステップ計算した結果.

(3)

後退スキーム

式(1)に後退スキームを用いて差分化した式は

Un+1 =Un+ipUn+1.

増幅係数は

λ = 1 +ip 1 +p2.

t = 2×102,t = 4×102 で計算した結果(それぞれ200ステップ目, 100ス テップ目を計算した値)を以下に示す. ただし,絶対誤差については位相のずれの影 響を少なくするため,それぞれ30ステップ目, 15ステップ目の値を表記している.

t 解析解 数値解 増幅係数 増幅係数解析値 絶対誤差 2×102 1.00000000 0.67425215 0.99803191 0.99803185 1.99537575E-2 4×102 1.00000000 0.45586878 0.99219650 0.99219662 4.25848961E-2

時間の刻み幅を2倍にすると,絶対誤差が約2倍になる. これは誤差がO(∆t)のオー ダーを持つ事による. 増幅係数の1からのずれが約4倍になっている. これは増幅 係数が

|λ|= 1

√1 +p2 1 1 2p2 となっているからである. 位相については

θ

p 1 1 3p2 <1

となるので,オイラースキームと同様に数値解は解析解よりも遅くなる. このこと は∆t= 2×101で計算した結果のグラフ(図4)を参照.

(4)

時間差分スキーム 振動方程式への応用 4

図3: 後退スキームを用いて,∆t= 2×102で200ステップ計算した結果.

図4:後退スキームを用いて,∆t = 2×101で20ステップ計算した結果.

台形スキーム

式(1)に台形スキームを用いて差分化した式は Un+1 =Un+ ip

2(Un+Un+1).

(5)

増幅係数は

λ = 1

1 + p42 (

1 1

4p2 +ip )

.

t = 2×102,t = 4×102 で計算した結果(それぞれ200ステップ目, 100ス テップ目を計算した値)を以下に示す. ただし,絶対誤差については位相のずれの影 響を少なくするため,それぞれ30ステップ目, 15ステップ目の値を表記している.

t 解析解 数値解 増幅係数 増幅係数解析値 絶対誤差 2×102 1.00000000 1.0000066 1.0000000 1.0000000 5.88953495E-4 4×102 1.00000000 0.99986190 1.0000000 1.0000000 2.35441327E-3

時間の刻み幅を2倍にすると,絶対誤差が約4倍になる. これはO(∆t2)のオーダー を持つ事による. ただし解が1や-1となるところでは誤差が理論通りの精度にな らない. 解析解と数値解の値が近いので,グラフでは解析解の線と数値解の線が重 なってしまう. 位相については

θ

p 1 1

12p2+O(p4)<1

となるので数値解の位相は解析解の位相より遅くなる. このことは∆t= 2×101 で計算した結果のグラフ(図6)を参照.

図5: 台形スキームを用いて,∆t= 2×102で200ステップ計算した結果.

(6)

時間差分スキーム 振動方程式への応用 6

図6:台形スキームを用いて,∆t = 2×101で20ステップ計算した結果.

松野スキーム

式(1)に松野スキームを用いて差分化した式は

Un+1 = (1 +ip−p2)Un. 増幅係数は

λ= 1 +ip−p2.

t = 2×102,t = 4×102 で計算した結果(それぞれ200ステップ目, 100ス テップ目を計算した値)を以下に示す. ただし,絶対誤差については位相のずれの影 響を少なくするため,それぞれ30ステップ目, 15ステップ目の値を表記している.

t 解析解 数値解 増幅係数 増幅係数解析値 絶対誤差 2×102 1.00000000 0.67398202 0.99803185 0.99803191 1.32847726E-2 4×102 1.00000000 0.45291054 0.99219859 0.99219859 1.74482167E-2

時間の刻み幅を2倍にすると,絶対誤差は大きくなるものの2倍にはならなかった. 松野スキームでは絶対誤差が理論通りにならないケースがある. 増幅係数の1から のずれが約4倍になっている. これは増幅係数の絶対値が

|λ|=√

1−p2+p4 = 1−O(∆t2)

(7)

となるためである. 位相については

θ

p 1 + 2

3p2+O(p3)>1

となるので数値解の位相は解析解の位相より速くなる. このことは∆t= 2×101 で計算した結果のグラフ(図8)を参照.

図7: 松野スキームを用いて,∆t= 2×102で200ステップ計算した結果.

図8:松野スキームを用いて,∆t = 2×101で20ステップ計算した結果.

(8)

時間差分スキーム 振動方程式への応用 8

ホインスキーム

式(1)にホインスキームを用いて差分化した式は Un+1 =

(

1 +ip−p2 2

) Un. 増幅係数は

λ= 1 +ip− p2 2 .

t = 2×102,t = 4×102 で計算した結果(それぞれ200ステップ目, 100ス テップ目の値)を以下に示す. ただし,絶対誤差については位相のずれの影響を少な くするため,それぞれ30ステップ目, 15ステップ目の値を表記している.

t 解析解 数値解 増幅係数 増幅係数解析値 絶対誤差 2×102 1.00000000 1.0003552 1.0000020 1.0000019 -1.19614601E-3 4×102 1.00000000 1.0025758 1.0000310 1.0000311 -4.83867526E-3

時間の刻み幅を2倍にすると,誤差は約4倍になった. これは誤差がO(∆t2)のオー ダーを持つ事による. また増幅係数の1からのずれが約16倍になっている. これは 増幅係数の絶対値が

|λ|=

√ 1 + 1

4p4 1 + 1 8p4 となっているからである. 位相については

θ

p 1 + 1

6p2+O(p4)>1

となるので数値解の位相は解析解の位相より速くなる. このことは∆t= 2×101 で計算した結果のグラフ(図10)を参照.

(9)

図9:ホインスキームを用いて,∆t = 2×102で200ステップ計算した結果.

図10:ホインスキームを用いて,∆t = 2×101で20ステップ計算した結果.

(10)

時間差分スキーム 振動方程式への応用 10

リープフロッグスキーム

式(1)にリープフロッグスキームを用いて差分化した式は

Un+1 =Un1+ 2ipUn.

物理モードの増幅係数は

λ=√

1−p2+ip.

計算モードの増幅係数は

λ=

1−p2+ip.

t = 2×102,t = 4×102 で計算した結果(それぞれ200ステップ目, 100ス テップ目を計算した値)を以下に示す. ただし,絶対誤差については位相のずれの影 響を少なくするため,それぞれ30ステップ目, 15ステップ目の値を表記している.

t 解析解 数値解 増幅係数 増幅係数解析値 絶対誤差 2×102 1.00000000 0.99996626 0.99999309 0.99999994 -1.12247467E-3 4×102 1.00000000 0.99946183 0.99990833 0.99999994 -4.76795435E-3

精度を良くするために,U0からU1を計算するときに台形スキームを用いた. 時間 の刻み幅を2倍にすると, 絶対誤差は約4倍になる. これは誤差がO(∆t2)のオー ダーを持つことによる. 台形スキームのときと同じように, 解が1, -1になるとこ ろでは誤差が理論通りにならない. 増幅係数はステップごとに1を中心に振動する ような振る舞いをする1. 具体的には, 刻み幅が∆t = 2×102のとき,増幅係数は λ = 1±5.0×105となり, ∆t = 4×102のとき, 増幅係数はλ = 1±5.0×104 となる. これはわずかに計算モードの影響があるからである. 位相については

θ

p = arctan (

p 1−p2

)

1 + p2 6 >1

となるので数値解の位相は解析解の位相より速くなる. このことは∆t= 2×101 で計算した結果のグラフ(図12)を参照.

1「振動するような」と書いたのは,基本的に振動するが,たまに2ステップ連続で1を下回った り,上回ったりする場合があるからである.

(11)

図11: リープフロッグスキームを用いて,∆t = 2×102で200ステップ計算した 結果.

図 12: リープフロッグスキームを用いて, ∆t = 2×101で20ステップ計算した 結果.

(12)

時間差分スキーム 振動方程式への応用 12

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

式(1)に二次のアダムス・バッシュフォーススキームを用いて差分化した式は Un+1=Un+ip

(3

2Un1 2Un1

) . 物理モードの増幅係数は

λ= 1 2

( 1 + 3

2ip+

√ 1 9

4p2+ip )

.

計算モードの増幅係数は

λ= 1 2

( 1 + 3

2ip−

√ 1 9

4p2+ip )

.

t = 2×102,t = 4×102 で計算した結果(それぞれ200ステップ目, 100ス テップ目を計算した値)を以下に示す. ただし,絶対誤差については位相のずれの影 響を少なくするため,それぞれ30ステップ目, 15ステップ目の値を表記している.

t 解析解 数値解 増幅係数 増幅係数解析値 絶対誤差 2×102 1.00000000 1.0005734 1.0000039 1.0000038 -2.87300348E-3 4×102 1.00000000 1.0030313 1.0000644 1.0000644 -1.12338066E-2

精度を良くするために,U0からU1を計算するときに台形スキームを用いた. 時間 の刻み幅を2倍にすると,誤差は約4倍になる. これは誤差がO(∆t2)のオーダーを 持つことによる. ただし, 解が1, -1になるところでは誤差が理論通りにならない. また増幅係数の1からのずれが約16倍になっている. これは物理モードの増幅係 数の絶対値が

|λ|= 1 +O(∆t4)

となっているからである. なお|p|<1であるから計算モードは減衰するので,計算 モードの増幅係数は無視できる. 位相については

θ

p 1 + 5

12p2+O(p3)>1

となるので2数値解の位相は解析解の位相より速くなる. このことは∆t = 2×101 で計算した結果のグラフ(図14)を参照.

2導出は付録参照.

(13)

図13:アダムス・バッシュフォーススキームを用いて,∆t= 2×102で200ステッ プ計算した結果.

図14: アダムス・バッシュフォーススキームを用いて,∆t= 2×101で20ステッ プ計算した結果.

(14)

時間差分スキーム 振動方程式への応用 14

付録 : アダムス・バッシュフォーススキームの位相比

ここでは二次のアダムス・バッシュフォーススキームの物理モードの位相比を導 出する.

物理モードの増幅係数は

λ= 1 2

( 1 + 3

2ip+

√ 1 9

4p2+ip )

である. 今,|p|<1であることより,根号の部分をテイラー展開し計算すると,

λ = 1 +ip− 1 2p2+1

4ip3 1

4p4+· · · . 実部と虚部に分けると,

λ= (

11 2p21

4p4+· · · )

+i (

p+ 1

4p3+· · · )

.

位相比θ/pを求める.

θ p = 1

parctan (λim

λre

)

= 1

parctan

( p+14p3+· · · 1 12p214p4· · ·

)

|p|<1であるから, ()の中は三次までを有効とすると θ

p 1

parctan

(p+ 14p3 1 12p2

) .

arctanの()の中身をテイラー展開して

θ p 1

parctan (

p+ 3

4p3+O(p4) )

.

次に,arctanをテイラー展開して計算すると

θ p 1

p {(

p+3

4p3+O(p4) )

1 3

( p+3

4p3+O(p4) )3

+ 1 5

( p+ 3

4p3+O(p4) )5

+· · · }

1 p

{ p+ 5

12p3+O(p4) }

= 1 + 5

12p2+O(p3).

Referensi

Dokumen terkait

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

ただし積分路C は原 点とfzの全ての特異点を含む閉曲線を反時計周りに1周するものとする... 12.5 留数定理を用いた複素積分

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

また, 雲の効果は無視して, 問題2.4と 同様の手法で, 金星の下層大気における放射の時定数を見積もれ.. 金星では雲によ る温室効果と, おそらく大気の運動によって, 観測される下層大気の昼夜の温度差は

ここで四捨五入による表現誤差をδ2とすると δ2 =z−F +δro となる... 1つの数は定まった ビット数の1語に収められることになっているため4 ,1語で表現しうる数の種類は

多価関数:Riemann リーマン 面 z平面を複数枚,分枝の数だけ用意し,1枚1枚 のz平面上の点はそれぞれ相異なる1つの分枝に写像されるものとする.また各平面には 切れ目が入っており,切れ目を介して他の面へ連続的に乗り移れるものとする.このよう に複数枚のz平面をつなぎ 合わせた平面をRiemann面という.こうするとRiemann面上

1-4でt = 0に落下し始めた系について考える。その後、ばねが縮んだ状態から自然長 に戻った瞬間に物体1は台と弾性的に衝突した。(衝突は瞬間的に完了し、系の力学的エ ネルギーの損失はない。)物体1との衝突までは台は固定されているが、衝突直後に台を 横にずらしたため、物体と台が再び衝突することはないとしてよい。このとき、衝突後 の運動における重心座標の最大値を求めよ。

参考文献 川畑 拓也, 2011,「時間差分スキーム1」 URL:http://www.ep.sci.hokudai.ac.jp/˜gfdlab/comptech/resume/0728/2011 0728- takuya.pdf Mesinger, F., and Arakawa, A., 1976, Numerical methods used in