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

将来行ってみたい研究

N/A
N/A
Protected

Academic year: 2021

シェア "将来行ってみたい研究"

Copied!
154
0
0

読み込み中.... (全文を見る)

全文

(1)

1 中部CAE懇話会:基礎講座 第7回(H21年度)「流体伝熱基礎講座」 H21年度・4日目 ( 2009年8月29日(土) )

流体数値計算法

講師:名古屋工業大学・大学院工学研究科

教授 森西洋平

(2)

1.時間進行法 1・1 線形多段解法 1・1・1 アダムス・バシュフォース公式 1・1・2 アダムス・モルトン公式 1・1・3 後退差分公式 1・2 ルンゲ・クッタ法 1・2・1 陽的ルンゲ・クッタ法 1・2・2 陰的ルンゲ・クッタ法 1・3 時間進行法の安定性解析 1・3・1 線形多段解法の絶対安定領域 1・3・2 ルンゲ・クッタ法の絶対安定領域 2.非圧縮性流れの計算アルゴリズム 2・1 差分格子系とMAC法系統の解法 2・1・1 レギュラー格子を用いる差分法の問題点 2・1・2 MAC法とスタガード格子 2・1・3 SMAC法 2・1・4 SOLA法(HSMAC法) 2・2 フラクショナル・ステップ法 2・2・1フラクショナル・ステップ法と分離誤差 2・2・2 DDのフラクショナル・ステップ法 2・3 SIMPLE法系統の解法 2・3・1 SIMPLE法 2・3・2 SIMPLER法 2・3・3 SIMPLEC法 講義内容 午前 ( 9:30-12:30) 午後 (13:30-16:30)

(3)

3 1.時間進行法 1・1 線形多段解法 1・1・1 アダムス・バシュフォース公式 1・1・2 アダムス・モルトン公式 1・1・3 後退差分公式 1・2 ルンゲ・クッタ法 1・2・1 陽的ルンゲ・クッタ法 1・2・2 陰的ルンゲ・クッタ法 1・3 時間進行法の安定性解析 1・3・1 線形多段解法の絶対安定領域 1・3・2 ルンゲ・クッタ法の絶対安定領域 2.非圧縮性流れの計算アルゴリズム 2・1 差分格子系とMAC法系統の解法 2・1・1 レギュラー格子を用いる差分法の問題点 2・1・2 MAC法とスタガード格子 2・1・3 SMAC法 2・1・4 SOLA法(HSMAC法) 2・2 フラクショナル・ステップ法 2・2・1フラクショナル・ステップ法と分離誤差 2・2・2 DDのフラクショナル・ステップ法 2・3 SIMPLE法系統の解法 2・3・1 SIMPLE法 2・3・2 SIMPLER法 2・3・3 SIMPLEC法 講義内容 午前 ( 9:30-12:30) 午後 (13:30-16:30)

(4)

( )

t

0

u

0

u

=

( )

(

( )

) (

)

0

,

u

t

t

t

t

F

dt

t

du

=

>

目的:1階常微分方程式に対する時間進行法を理解する. 本章では変数 u(t) に関する次の1階常微分方程式の初期値 問題の時間進行法(数値時間積分法)を考える. (1.1) 1階常微分方程式 (1.2) 初期条件 つまり,時間刻み幅毎の時間離散点上の値,

u(t0+

Δ

t), u(t0+2

Δ

t), u(t0+3

Δ

t), ・・・

を,式(1.2)を初期条件として,式(1.1)を満足させながら 求めたい.

(5)

5 時間進行法を構築するため,まずu(t+

Δ

t)をu(t)まわりに テイラー展開して式(1.1)を使用すると次式を得る. ( + Δ ) ( )= + Δ ( )+ Δ ( )+ Δ ( )+L+ Δ n n n( )+L dt t u d n t dt t u d t dt t u d t dt t du t t u t t u ! ! 3 2 3 3 3 2 2 2 ( )+Δ ( ( ))+ Δ ( ( ))+ Δ ( ( ))+L = 2 2 3 2 , ! 3 , 2 , dt t u t F d t dt t u t dF t t u t tF t u ( ) ( ( )) ( ) L L+ Δ + − 1 1 , ! n n n dt t u t F d n t 時間に関する離散点上の値を表現するため, (1.3)

( )

n n u t u =

( )

(

n n

)

n F t u t F = , t t t t n tn = Δ , n+1 = n + Δ の表記を使用する.以降も同様.

(6)

t u(t) t n Δt Euler explicit F n t n+1 u(t) u n u n+1 n n n F 図1.1 陽的オイラー法による時間進行 最も単純な時間進行法はテイラー展開の右辺第3項以降を 打ち切って構成される陽的オイラー法である. t u u +1 = + Δ ⋅

(

n n

)

Fn t u u = Δ − +1 あるいは, 陽的オイラー法では,tnにおける 勾配Fnunからun+1を計算する. 陽的オイラー法 F dt du = に対する

(7)

7 式(1.1)と陽的オイラー法をテイラー展開を通して比べると, 打ち切誤差の初項がO(

Δ

t1)となり,陽的オイラー法1次 精度しか持たないことがわかる. 時間進行法の精度を向上させる方法として, 1)線形多段階法 2)1段階法 がしばしは採用される.

(8)

1)線形多段解法 ・un+1を計算する際に,時刻tnおよびtn+1での情報のみならず, さらに過去の情報(時刻tn-1tn-2,… )も利用して高次精度 化を行う. ・計算の出発点近傍で別の時間進行法を使用する必要があり, また時間刻み幅の変更が容易でないことに注意が必要. ・代表は,アダムス・バシュフォース(AB)公式 アダムス・モルトン(AM)公式 後退差分(BD)公式 2) 1段解法: ・un+1を計算する際に,基本的に時刻tnでの情報(およびそれ から計算される値)のみを利用して高次精度化を行うもの. ・代表は,ルンゲ・クッタ(RK)法 以下本章ではこれら時間進行法を取り上げ紹介する. さらに,これら時間進行法の数値安定性についても示す.

(9)

9 補足:式(1.1)の1階常微分方程式を扱う理由 流体運動の支配方程式は一般に偏微分方程式である輸送方程式として 記述されるが,なぜ1階常微分方程式を扱うのかを説明する. 例として外力を伴う1次元移流拡散方程式を考える. f x u x u U t u + ∂ ∂ + ∂ ∂ − = ∂ ∂ 2 2 ν 変数 u=u(t,x) が独立変数 t とx の双方に依存するので,この方程式は 偏微分方程式である.またより一般的に,移流速度 U=U(t,x),拡散係 数ν=ν(t,x) ,および外力 f=f(t,x) も時間と空間の双方に依存するもの とする.

(10)

ここで,空間に等間隔格子(xi=iΔx, 0iN+1)を使用し,離散値を

u(t,xi)=ui(t)=ui のように表現し,空間2階微分を2次精度中心差分で近似する.

(

i N

)

f x u u u x u u U dt du i i i i i i i i i + Δ + − + Δ − − = + − + 2 − , 1 2 2 1 1 1 1 ν 空間離散化後の変数はui=ui(t)なので偏微分が常微分に変わる.さらに変数を

u=[u1,u2,…,uN]Tとベクトル表記し,端点i=0,Nに対する境界条件も含めて上式 を書き直すと次の離散システム方程式を得る. ( ) A( ) ( ) ( )t t t F(t ( )t ) dt t d u b u u , = + = A(t)は差分の係数を要素とする(N×N)の行列,b(t)は外力と境界条件を含むベ クトルである.このように流体運動の支配方程式を空間離散化した後の時間 発展方程式は基本的に式(1.1)の形となる.空間多次元の場合も同様である. なお,離散システム方程式の変数はベクトル,式(1.1)の変数はスカラーで あるが,時間進行法の構成に違いは生じない.

(11)

11 1.時間進行法 1・1 線形多段解法 1・1・1 アダムス・バシュフォース公式 1・1・2 アダムス・モルトン公式 1・1・3 後退差分公式 1・2 ルンゲ・クッタ法 1・2・1 陽的ルンゲ・クッタ法 1・2・2 陰的ルンゲ・クッタ法 1・3 時間進行法の安定性解析 1・3・1 線形多段解法の絶対安定領域 1・3・2 ルンゲ・クッタ法の絶対安定領域 2.非圧縮性流れの計算アルゴリズム 2・1 差分格子系とMAC法系統の解法 2・1・1 レギュラー格子を用いる差分法の問題点 2・1・2 MAC法とスタガード格子 2・1・3 SMAC法 2・1・4 SOLA法(HSMAC法) 2・2 フラクショナル・ステップ法 2・2・1フラクショナル・ステップ法と分離誤差 2・2・2 DDのフラクショナル・ステップ法 2・3 SIMPLE法系統の解法 2・3・1 SIMPLE法 2・3・2 SIMPLER法 2・3・3 SIMPLEC法 講義内容 午前 ( 9:30-12:30) 午後 (13:30-16:30)

(12)

1・1 線形多段階法

(N+1)段の線形多段階法(Linear multi-step methods)は 一般に次式で記述される.ただし

α

1

0. ∑ ∑ − = =− + + = Δ 1 1 1 N j j N j n j j n ju F t α β 線形多段階法の一般形 F dt du = に対するもの 特に,

α

1=1,

α

0

=-1

,

β

1=0,

α

j (j

≦-

1)

=0

とすれば, アダムス・バシュフォース(Adams-Bashforth)公式

α

1=1,

α

0=

-

1,

β

1

0,

α

j (j

≦-

1)

=0

とすれば, アダムス・モルトン(Adams-Moulton)公式

α

1

1,

β

1=1,

β

j (j

≦0

)

=0

とすれば, 後退差分(Backward-difference)公式

(13)

13 t u(t) t n Δt Adams–Bashforth F n t n+1 u(t) u n u n+1 t n–1 F n–1 t n–2 F n–2 Δt Δt

(

) (

= + + +L

)

Δ − − − − + 2 2 1 1 0 1 n n n n n F F F t u u β β β 図1.2 アダムス・バシュフォース公式による時間進行 アダムス・バシュフォース公式 陽解法(

β

1=0)

(14)

図1.3 アダムス・モルトン公式による時間進行 アダムス・モルトン公式

(

) (

= + + + +L

)

Δ − − − − + + 2 2 1 1 0 1 1 1 n n n n n n F F F F t u u β β β β t u(t) t n Δt Adams–Moulton F n t n+1 u(t) u n u n+1 t n–1 F n–1 t n–2 F n–2 Δt Δt F n+1 陰解法(

β

1

0)

(15)

15 図1.4 後退差分公式による時間進行 後退差分公式

(

1 +1 0 −1 −1

)

= +1 Δ + + + n n n n F t u u u α α L α t u(t) t n Δt Backward–difference t n+1 u(t) u n u n+1 t n–1 t n–2 Δt Δt F n+1 u n–1 u n–2 陰解法(

β

1

0) ※ 以下でそれぞれに対する4次精度までの公式を示す.

(16)

1・1・1 アダムス・バシュフォース公式

時間1次精度から4次精度までのアダムス・バシュフォー ス(AB)公式は以下のとおりである.

(

n n

)

Fn t u u = Δ − +1

(

1

) (

1

)

3 2 1 + − = Δ − n n n n F F t u u

(

1

) (

1 2

)

5 16 23 12 1 + + − = Δ − n n n n n F F F t u u

(

1

) (

1 2 3

)

9 37 59 55 24 1 + − + − = Δ − n n n n n n F F F F t u u 1次精度の公式(AB1)は陽的オイラー法である.特に精度が明示 されていない場合,流体計算では2次精度の公式(AB2)をアダム ス・バシュフォース法と称する場合が多い. 陽的オイラー法(AB1) AB2 (アダムス・バシュフォース法) AB3 AB4

(17)

17 補足:AB公式の導出(1/3)

(

) (

2

)

0 2 1 1 0 1 = + + + − Δ − − − − − + L n n n n n F F F t u u β β β とおき,時刻tnまわりのテイラー展開

(

)

L + Δ + Δ + Δ + = Δ − + 3 3 3 2 2 2 1 24 1 6 1 2 1 t dt F d t dt F d t dt dF F t u un n n n n n ( ) ( ) ( ) L, 0,1,2,L 6 1 2 1 3 3 3 2 2 2 = + Δ − Δ + Δ − = − q t q dt F d t q dt F d t q dt dF F F n n n n q n から,AB公式が指定した時間精度(2次精度ならばO(Δt2))で近似さ れるように係数β0, β-1, β-2,・・・を定める. AB公式を,

(18)

補足:AB公式の導出(2/3) 例として2次精度アダムス・バシュフォース法(AB2)を取り上げる.

(

)

1 0 1 0 1 = − − Δ − − + n n n n F F t u u β β AB2の係数

β

0

-1 を定めるためテイラー表を利用する.

(

)

1 1 1 1 1 0 0 1 2 2 2 2 1 0 0 6 1 2 1 1 / − − − − − − − + − − − − + + + Δ − Δ Δ β β β β β β n n n n n n n F F t u u t dt F d t dt dF F O(Δt)とO(Δt1)の列それぞれの係数の合計を0とする2つの条件から, 係数β0-1 に対する連立方程式が得られる.

(19)

19 補足:AB公式の導出(3/3) 係数β0-1 に対する連立方程式 ⎪⎩ ⎪ ⎨ ⎧ − = = + − − 2 1 1 1 1 0 β β β これを解きβ0=3/2, β-1=-1/2を得る.これはAB2公式を与える.

(

1

) (

1

)

3 2 1 + − = Δ − n n n n F F t u u なお,テイラー表の3列目(O(Δt2) )の合計はAB2公式の打切り誤差 の初項εを与える. AB2 (アダムス・バシュフォース法) ) ( 12 5 2 1 6 1 2 2 2 2 2 2 2 1 t O t dt F d t dt F d nΔ = nΔ = Δ ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ − = β ε

(20)

補足:陽解法による計算 陽解法は既知量の単純代入計算のみで時間進行が行えるので計算 コードの作成が容易であり,また陰解法に比べて時間ステップあ たりの計算量が非常に少なくて済む. 例えばAB2は実際には次の形で使用される.

(

1

)

1 3 2 − + = n + Δ n n n u t F F u これは既知量(時刻tn以前の量)の単純代入計算のみで未知量un+1 が得られることを意味し,1時間ステップの進行に繰り返し計算 を必要としない. このような時間進行法は陽解法と呼ばれる. AB公式 陽的RK法

(21)

21

1・1・2 アダムス・モルトン公式

時間1次精度から4次精度までのアダムス・モルトン(AM) 公式は以下のとおりである. 1次精度の公式(AM1)は陰的オイラー法であり,2次精度の公式 (AM2)は通常クランク・ニコルソン(Crank-Nicolson, CN)法 と呼ばれる.AM公式はun+1の値を得るためにFn+1=F(un+1)を必要と するが,このような時間進行法は陰解法と呼ばれる. 陰的オイラー法(AM1) クランク・ニコルソン法(AB2) AM3 AM4

(

n 1 n

)

Fn 1 t u u + − = + Δ

(

n 1 n

) (

Fn 1 F n

)

2 1 t u u + − = + + Δ

(

n 1 n

) (

5Fn 1 8Fn Fn 1

)

12 1 t u u + + − + = − Δ

(

n 1 n

) (

9Fn 1 19Fn 5Fn 1 Fn 2

)

24 1 t u u + − = + + + Δ

(22)

補足:AM公式の導出(1/3)

(

) (

1

)

0 1 0 1 1 1 = + + + − Δ − − − + + L n n n n n F F F t u u β β β とおき,時刻tnまわりのテイラー展開

(

)

L + Δ + Δ + Δ + = Δ − + 3 3 3 2 2 2 1 24 1 6 1 2 1 t dt F d t dt F d t dt dF F t u un n n n n n ( ) ( ) ( ) L, 0,1,2,L 6 1 2 1 3 3 3 2 2 2 = + Δ − Δ + Δ − = − q t q dt F d t q dt F d t q dt dF F F n n n n q n から,AM公式が指定した時間精度(2次精度ならばO(Δt2))で近似さ れるように係数

β

1,β0, β-1, ・・・を定める. AM公式を, L + Δ + Δ + Δ + = + 3 3 3 2 2 2 1 6 1 2 1 t dt F d t dt F d t dt dF F F n n n n n

(23)

23 補足:AM公式の導出(2/3) 例としてクランク・ニコルソン法(AM2)を取り上げる. AM2の係数

β

1

0 を定めるためテイラー表を利用する. O(Δt)とO(Δt1)の列それぞれの係数の合計を0とする2つの条件から, 係数β10 に対する連立方程式が得られる.

(

)

0 0 1 1 1 = − − Δ − + + n n n n F F t u u β β

(

)

0 0 2 1 6 1 2 1 1 / 0 0 1 1 1 1 1 1 2 2 2 β β β β β β − − − − − − + + + Δ − Δ Δ + − n n n n n n n F F t u u t dt F d t dt dF F

(24)

補足:AM公式の導出(3/3) 係数β10 に対する連立方程式 ⎪⎩ ⎪ ⎨ ⎧ = = + − − 2 1 1 1 1 0 β β β これを解きβ10=1/2を得る.これはクランク・ニコルソン法(AM2) を与える.

(

n n

) (

Fn Fn

)

t u u = + Δ − + + 1 1 2 1 なお,テイラー表の3列目(O(Δt2) )の合計はクランク・ニコルソ ン法の打切り誤差の初項εを与える. クランク・ニコルソン法(AB2) ) ( 12 1 2 1 6 1 2 2 2 2 2 2 2 1 t O t dt F d t dt F d nΔ = nΔ = Δ ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ − = β ε

(25)

25 補足:陰解法による計算 例えばクランク・ニコルソン法(AM2)は実際には上式を変形した 次の形で使用される 右辺は既知量であるが左辺は未知量un+1を含む関数であり,上式を 満足するun+1を特定するために通常繰り返し計算が必要となる. このような時間進行法は陰解法と呼ばれる. AM公式 後退差分公式 陰的RK法

(

n 1 n 1

)

n

(

n n

)

1 n F t u 2 t u u t F 2 t u + − Δ + , + = + Δ ,

(26)

1・1・3 後退差分公式

時間1次精度から4次精度までの後退差分(BD)公式は以下の とおりである. 1次精度の公式(BD1)は陰的オイラー法である. これら後退差分公式はギアー(Gear)法と呼ばれることもある. BD公式も陰解法である. 陰的オイラー法(BD1) BD2 BD3 BD4

(

n 1 n

)

Fn 1 t u u + − = + Δ

(

n 1 n n 1

)

Fn 1 t 2 u u 4 u 3 + − + − = + Δ

(

n 1 n n 1 n 2

)

Fn 1 t 6 u 2 u 9 u 18 u 11 + − + − − − = + Δ

(

n 1 n n 1 n 2 n 3

)

Fn 1 t 12 u 3 u 16 u 36 u 48 u 25 + − + − − − + − = + Δ

(27)

27 補足:BD公式の導出(1/3) とおき,時刻tn+1まわりのテイラー展開 から,BD公式が指定した時間精度(2次精度ならばO(Δt2))で近似さ れるように係数α,

α

0,

α

-1,

α

-2,・・・を定める. BD公式を,

(

)

0 1 2 2 1 1 0 1 1 − = Δ + + + + + + n n n n n F t u u u u α α α L α ( + )Δ + [( + )Δ ] − [( + )Δ ] +L − = + + + + − 3 1 3 3 2 1 2 2 1 1 1 6 1 1 2 1 1 q t dt u d t q dt u d t q dt du u u n n n n q n ( + )Δ + [( + )Δ ] − [( + )Δ ] +L − = + + + + 3 1 2 2 2 1 1 1 1 6 1 1 2 1 1 q t dt F d t q dt dF t q F u n n n n L , 2 , 1 , 0 = q

(28)

補足:BD公式の導出(2/3) 例として2次精度後退差分公式(BD2)を取り上げる. BD2の係数

α

,

α

0,

α

-1を定めるためテイラー表を利用する. O(Δt1), O(Δt),およびO(Δt1)の列それぞれの係数の合計を0とする3 つの条件から,係数α0-1 に対する連立方程式が得られる.

(

)

0 1 1 1 0 1 1 − = Δ + + + + n n n n F t u u u α α α 0 0 1 0 6 8 2 2 / 6 1 2 1 / 0 0 0 / 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 2 1 2 2 1 1 1 − − − − + Δ − + − + Δ + Δ Δ Δ Δ + − − − − − − + + + + + n n n n n n n n F t u t u t u t dt F d t dt dF F t u α α α α α α α α α α α α

(29)

29 補足:BD公式の導出(3/3) 係数α0-1 に対する連立方程式 これを解きα1=3/2,α0=-2,α-1=1/2 を得る. これはBD2公式を与える. なお,テイラー表の4列目(O(Δt2) )の合計はBD2公式の打切り誤差 の初項εを与える. BD2 ⎪ ⎩ ⎪ ⎨ ⎧ = + − = + = + + − − − 0 4 1 2 0 1 0 1 0 1 0 1 α α α α α α α

(

)

1 1 1 2 4 3 + − + = Δ + − n n n n F t u u u ( ) ) ( 3 1 6 8 1 2 2 2 2 2 1 2 2 1 0 t O t dt F d t dt F d n Δ = n Δ = Δ + − = + + − α α ε

(30)

1.時間進行法 1・1 線形多段解法 1・1・1 アダムス・バシュフォース公式 1・1・2 アダムス・モルトン公式 1・1・3 後退差分公式 1・2 ルンゲ・クッタ法 1・2・1 陽的ルンゲ・クッタ法 1・2・2 陰的ルンゲ・クッタ法 1・3 時間進行法の安定性解析 1・3・1 線形多段解法の絶対安定領域 1・3・2 ルンゲ・クッタ法の絶対安定領域 2.非圧縮性流れの計算アルゴリズム 2・1 差分格子系とMAC法系統の解法 2・1・1 レギュラー格子を用いる差分法の問題点 2・1・2 MAC法とスタガード格子 2・1・3 SMAC法 2・1・4 SOLA法(HSMAC法) 2・2 フラクショナル・ステップ法 2・2・1フラクショナル・ステップ法と分離誤差 2・2・2 DDのフラクショナル・ステップ法 2・3 SIMPLE法系統の解法 2・3・1 SIMPLE法 2・3・2 SIMPLER法 2・3・3 SIMPLEC法 講義内容 午前 ( 9:30-12:30) 午後 (13:30-16:30)

(31)

31

1・2 ルンゲ・クッタ法

式(1.1)を時間進行するための s 段ルンゲ・クッタ法 (Runge-Kutta method) の一般公式は次式で与えられる.

(

)

( )

(

)

⎪ ⎪ ⎩ ⎪⎪ ⎨ ⎧ Δ + Δ + = ≤ ≤ Δ + Δ + = ∑ ∑ = + = s i i i n i n n j j n s j ij n i u t c t F b t u u s i u t c t F a t u u 1 ) ( 1 ) ( 1 ) ( , 1 , , ただし,係数に対し

(

i s

)

a c s j ij i =

≤ ≤ =1 , 1 (1.2.1) の条件を与える. (1.2.2) 係数bi, ci,および aij は要求精度を満たすように式(1.1)の テイラー展開との比較から決定される. ( ) ( ( )) ( 0 ,u t t t t F dt ) t du = >

( )

t0 u0 u = (1.1) (1.2)

(32)

RK法の係数は次のブッチャー配列(Butcher tableau)で表 現すると便利である. s ss s s s s s b b b a a a c a a a c a a a c L L M O M M M L L 2 1 2 1 2 22 21 2 1 12 11 1 (1.2.3) s段RK法のブッチャー配列 T A b c

(33)

33

( )

1 2 3 4 4 5 6 6 7 7

( )

2 10 10 9 8 7 6 5 4 3 2 1 − ≤ ≥ s s p s p s s なお,ji に対してaij=0とするものを(陽的)RK法と呼ぶ.s 段(陽的)RK法 の到達可能精度p(s)は次表となることが知られている. 精度と計算量の兼ね合いからは4段4次精度公式が最も効率が良いこと がわかる. また,j>iに対してaij=0とするものを半陰的RK法と呼ぶ.s段半陰的RK法 の到達可能精度はp(s)=(s+1)となることが知られている. さらに,あるj>iについてaij≠0のものを陰的RK法と呼ぶが,s段陰的RK法 の到達可能精度はp(s)=2sである.

(34)

補足: 係数に対する条件式(1.2.2)に対しての必然性はないが,このように設 定すると扱い易い形となるので,通常この条件を加える. また,常微分方程式の数値解法の教科書におけるRK法の一般公式は式 (1.2.1)よりも次式によるものが多い. しかしここでは,計算流体力学への応用における明快性から式(1.2.1)を 一般公式として採用する. ( ) ⎪ ⎪ ⎩ ⎪ ⎪ ⎨ ⎧ Δ + = ≤ ≤ ⎟ ⎟ ⎠ ⎞ ⎜ ⎜ ⎝ ⎛ Δ + Δ + = ∑ ∑ = + = s i i i n n s j ij j n i n i K b t u u s i K a t u t c t F K 1 1 1 1 , ,

(35)

35

1・2・1 陽的ルンゲ・クッタ法

陽的RK法はj>iに対してaij=0と設定するものであり,s段陽 的RK法に対するブッチャー配列は以下となる. 陽的RK法のブッチャー配列 s s ss s s s b b b b a a a c a a c a c 1 2 1 1 2 1 32 31 3 21 2 0 0 0 0 0 0 0 0 − − L L M O O M M M L L L L L L

(36)

この場合(c1=0として), ( ) t c t

(

i s

)

t i = n + iΔ , 1≤ ≤ ( ) F

(

t( ) u( )

)

(

i s

)

F i = i , i , 1≤ ≤ と記述すると,s段陽的RK法は次のように表現できる(更 新方式). ( ) ( ) ( ) ( ) ( ) ( ) ( ) ⎪ ⎪ ⎪ ⎪ ⎩ ⎪⎪ ⎪ ⎪ ⎨ ⎧ Δ + = ≤ ≤ Δ + = + = = =

= + − = s i i i n n i n i 1 i j j ij n i n n F b t u u s i t c t t F a Δt u u t t u u 1 1 1 1 1 2 , , , なおこの公式から,cii段目の計算時点でのtからt+

Δ

tの間 の到達割合いを意味することがわかる.

(37)

37 以下4次精度までの陽的RK法の公式の具体例を挙げる. まず,陽的オイラー法は1段1次精度陽的RK法(RK1)と見な すことができ,対応するブッチャー配列と計算式は 1 0 0 ⎪⎩ ⎪ ⎨ ⎧ ⋅ Δ + = = = +1 (1) ) 1 ( ) 1 ( , F t u u t t u u n n n n 1 11 1 b a c となる.これが陽的オイラー法 n n n u t F u +1 = + Δ ⋅ と一致することは容易に理解できる.

(38)

2段2次精度陽的RK法(RK2) 2段陽的RK法の一般形は次式で与えられる. ( ) ( ) ( ) ( ) ( ) ( ) ( )

(

)

⎪ ⎩ ⎪ ⎨ ⎧ + + = Δ + = ⋅ + = = = + 2 2 1 1 1 2 2 1 21 2 1 1 , , F b F b Δt u u t c t t F a Δt u u t t u u n n n n n n ここでb2=

α

を自由パラメータに選ぶと,2段2次精度陽的 RK法(RK2)に対する係数のブッチャー配列は以下で与えら れる. α α α α − = 1 0 ) 2 /( 1 ) 2 /( 1 0 0 0 0 0 0 0 2 1 21 2 b b a c RK2の一般係数(αは自由パラメータ)

(39)

39 特に,α=1の場合を修正オイラー法,α=1/2の場合をHeun法(改良オイ ラー法)と呼ぶ.またα=3/4の場合はRalstonの最適公式である. 1 0 0 2 / 1 2 / 1 0 0 0 2 / 1 2 / 1 0 1 1 0 0 0 4 / 3 4 / 1 0 3 / 2 3 / 2 0 0 0 修正オイラー法(α=1) 改良オイラー法(α=1/2) Ralstonの最適公式(α=3/4) t u(t) t n t n+1 RK2 un+1 u(2) = u(1) un t(2) t(1) = F (1) F (2) Δt/2 u(t) (α=1, Modified Euler) Δt/2 図1.5 RK2(修正オイラー法)による時間進行

(40)

補足:RK2の係数(1/3) と書ける.ただし,F=F(t,u(t)),Fu=∂F/u,および とする.これより,u(t+Δt)のテイラー展開は次式で記述される. まずF=F(t, u(t))の時間微分は, F dt du = DF dt u d 2 2 = 33 D2F ( )DF Fu dt u d + =

( )

( ) 2 ( ) u u u 2 3 4 4 DF DF 3 F DF F F D F D dt u d = + + + , , , u F t D ∂ ∂ + ∂ ∂ = 2 2 2 2 2 2 2 u F u t F 2 t D ∂ ∂ + ∂ ∂ ∂ + ∂ ∂ = 3 3 3 2 3 2 2 3 3 3 3 3 3 u F u t F u t F t D ∂ ∂ + ∂ ∂ ∂ + ∂ ∂ ∂ + ∂ ∂ = , ,

(

t t

) ( )

u t tF t DF t

[

D F

( )

DF Fu

]

u + Δ = + Δ + Δ + Δ 2 + 3 2 ! 3 2

( )

( ) ( )

[

+ + +

]

+L Δ + t D F D F Fu DF Fu 3 DF DF ! 4 2 2 3 4

(41)

41 補足:RK2の係数(2/3) これをRK2の時間進行の式,un+1=un+Δt(b 1F(1)+b2F(2)),に代入すると, RK2は 次に,RK2の一般公式におけるF(1),F(2)をtn=tおよびun=u(t)まわりに テイラー展開すると次式を得る. F F(1) =

( )

(

(1)

)

21 2 ) 2 ( , u t ta F t c t F F = + Δ + Δ L + ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ ∂ ∂ + ∂ ∂ Δ + ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ ∂ ∂ + ∂ ∂ Δ + = F u F a t c t F u F a t c t F 2 21 2 2 21 2 2

(

t + Δt

) ( )

= u t + Δt

(

b + b

)

F + Δt

(

b c Ft + b a FFu

)

+L u 2 2 2 2 21 2 1 の計算を行っていることに対応する.ただしFt=∂F/∂tである. これをu(t+Δt)のテイラー展開と比較してO(Δt2)まで係数を一致させ, さらに式(1.2.2)の条件も加えると,RK2の係数に対する条件式を得る.

(42)

補足:RK2の係数(3/3) RK2の係数に対する条件式 これは自由度1の連立方程式(式3つ,変数4つ)であるので,b2=α を自由パラメータとして係数の解を表現すると c2=a21=1/(2α) , b1=1-α を得る. 21 2 a c = 1 2 1 + b = b 2 / 1 2 2c = b

(43)

43 3段3次精度陽的RK法(RK3) 3段陽的RK法の一般形は次式で与えられる. 3段陽的RK法に対する係数のブッチャー配列は以下となる. 3段陽的RK法のブッチャー配列 ( ) ( ) ( ) ( ) ( ) ( )

(

( ) ( )

)

( ) ( ) ( ) ( )

(

)

⎪ ⎪ ⎩ ⎪ ⎪ ⎨ ⎧ + + + = Δ + = + + = Δ + = ⋅ + = = = + , , , , 3 3 2 2 1 1 1 3 3 2 32 1 31 3 2 2 1 21 2 1 1 F b F b F b Δt u u t c t t F a F a Δt u u t c t t F a Δt u u t t u u n n n n n n n n 3 2 1 32 31 3 21 2 0 0 0 0 0 0 0 b b b a a c a c

(44)

代表的な3段3次精度RK法(RK3)に対する係数のブッチャー配列を 挙げておく. 古典的RK3(c2=1/2,c3=1) HeunのRK3(c2=1/4,c3=2/3) RalstonのRK3(c2=1/2,c3=3/4) 6 / 1 3 / 2 6 / 1 0 2 1 1 0 0 2 / 1 2 / 1 0 0 0 0 − 4 / 3 0 4 / 1 0 9 / 8 9 / 2 3 / 2 0 0 4 / 1 4 / 1 0 0 0 0 − 9 / 4 3 / 1 9 / 2 0 4 / 3 0 4 / 3 0 0 2 / 1 2 / 1 0 0 0 0 4 / 3 0 4 / 1 0 12 / 5 4 / 1 3 / 2 0 0 15 / 8 15 / 8 0 0 0 0 7 / 4 7 / 3 0 0 4 / 7 1 4 / 3 0 0 6 / 1 6 / 1 0 0 0 0 − 15 / 8 10 / 3 6 / 1 0 16 / 15 16 / 3 4 / 3 0 0 3 / 1 3 / 1 0 0 0 0 − WrayのRK3(c2=8/15,c3=2/3) b1=0となるRK3(c2=1/6,c3=3/4) WilliamsonのRK3(c2=1/3,c3=3/4) これらのうち,b1=0となるRK3は更新方式における低容量型RK3で ある.つまり

b

1

=0

によってun+1の計算にF(1)が必要なくなるので,更新計 算において他のRK3公式よりも配列を1つ減らせる.WrayのRK3は 積み上げ方式における低容量型RK3である.WilliamsonのRK3は, Williamsonの計算法に従えば低容量(2N容量)型となるRK3である.

(45)

45 補足:RK3の係数(1/3) これは自由度2の連立方程式(式6つ,変数8つ)である. RK2と同様にしてRK3に対する係数の条件式も得られる. 21 2 a c = 32 31 3 a a c = + 1 3 2 1 + b +b = b 2 / 1 3 3 2 2c + cb = b 3 / 1 2 3 3 2 2 2c + cb = b 6 / 1 2 32 3a c = b

(46)

補足:RK3の係数(2/2) を得る. また,b3=α≠0を自由パラメータとして,以下の解が知られている. c2c3を自由パラメータとして係数の解を表現すると,c2c3c20, c22/3 に対して 2 21 c a = ( ) 2 3 2 2 2 3 31 3 2 1 3 c c c c c c a − − − × = 2 2 3 2 3 32 3 2 c c c c c a − − × = ( ) 3 2 3 2 1 6 2 3 1 c c c c b = − + − ( 3 2) 2 3 2 6 2 3 c c c c b − − = ( ) 2 3 3 2 3 6 3 2 c c c c b − − = , , α α α α − − 4 / 3 4 / 1 0 ) 4 /( 1 ) 4 /( 1 3 / 2 3 / 2 0 0 3 / 2 3 / 2 0 0 0 0 α α α α 4 / 3 4 / 1 0 ) 4 /( 1 ) 4 /( 1 0 0 0 3 / 2 3 / 2 0 0 0 0 − −

(47)

47 4段4次精度陽的RK法(RK4) 4段陽的RK法の一般形は次式で与えられる. 4段陽的RK法に対する係数のブッチャー配列は以下となる. 4段陽的RK法のブッチャー配列 ( ) ( ) ( ) ( ) ( ) ( )

(

( ) ( )

)

( ) ( )

(

( ) ( ) ( )

)

( ) ( ) ( ) ( ) ( )

(

)

⎪ ⎪ ⎪ ⎩ ⎪⎪ ⎪ ⎨ ⎧ + + + + = Δ + = + + + = Δ + = + + = Δ + = ⋅ + = = = + 4 4 3 3 2 2 1 1 1 4 4 3 43 2 42 1 41 4 3 3 2 32 1 31 3 2 2 1 21 2 1 1 , , , , F b F b F b F b Δt u u t c t t F a F a F a Δt u u t c t t F a F a Δt u u t c t t F a Δt u u t t u u n n n n n n n n n n 4 3 2 1 43 42 41 4 32 31 3 21 2 0 0 0 0 0 0 0 0 0 0 0 b b b b a a a c a a c a c

(48)

4次精度を満足する4段陽的RK法の係数の一般解はいくつか知られ ているが,ここでは代表的な4段4次精度RK法(RK4)に対する係数 のブッチャー配列を挙げておく. 古典的RK4 KuttaのRK4(Kuttaの3/8公式) GillのRK4 6 / 1 3 / 1 3 / 1 6 / 1 0 1 0 0 1 0 0 2 / 1 0 2 / 1 0 0 0 2 / 1 2 / 1 0 0 0 0 0 8 / 1 8 / 3 8 / 3 8 / 1 0 1 1 1 1 0 0 1 3 / 1 3 / 2 0 0 0 3 / 1 3 / 1 0 0 0 0 0 − −

(

) (

)

(

)

(

2 2

) (

/6 2 2

)

/6 1/6 6 / 1 0 2 / 2 2 2 / 2 0 1 0 0 2 / 2 2 2 / 1 2 2 / 1 0 0 0 2 / 1 2 / 1 0 0 0 0 0 + − + − − −

(49)

49 補足:RK4の係数(1/3) RK2あるいはRK3と同様にしてRK4に対する係数の条件式も得 られる. 21 2 a c これは自由度2の連立方程式(式11,変数13)である. = 32 31 3 a a c = + 43 42 41 4 a a a c = + + 1 4 3 2 1 +b +b +b = b 2 / 1 4 4 3 3 2 2c +b c +b c = b 3 / 1 2 4 4 2 3 3 2 2 2c + b c + b c = b 4 / 1 3 4 4 3 3 3 3 2 2c +b c +b c = b ( 42 2 43 3) 1/6 4 2 32 3a c +b a c + a c = b

(

42 22 43 32

)

1/12 4 2 2 32 3a c +b a c + a c = b ( 42 2 43 3) 4 1/8 4 3 2 32 3a c c +b a c + a c c = b 24 / 1 2 32 43 4a a c = b

(50)

補足:RK4の係数(2/3) を得る.この解はc2=1/3,c3=2/3でKuttaのRK4を与える. まず c2c3を自由パラメータとし,c2c3(c2-1)(c3-1)(c2-c3)≠0の場合につい てRK4の係数の解を表現すると, 1 4 = c a21 = c2

(

)

( 2) 2 2 2 3 2 3 31 2 1 2 4 3 c c c c c c a − − − = (( )) 2 2 2 3 3 32 2 1 2c c c c c a − − = ( )

[

( )

]

( )[6 4( ) 3] 2 1 2 1 1 3 2 3 2 2 3 2 2 3 3 2 2 42 + + − − − + − = c c c c c c c c c c c a ( )( )( ) ( )[6 4( ) 3] 1 1 2 1 3 2 3 2 2 3 3 3 2 2 43 + + − − − = c c c c c c c c c c a ( ) 3 2 3 2 1 12 2 1 2 1 c c c c b = + − + ( 3 2)( 2) 2 3 2 1 12 1 2 c c c c c b − − − = ( 3 2)( 3) 3 2 3 1 12 2 1 c c c c c b − − − = ( 42 43) 41 1 a a a = − + b4 =1−(b1 +b2 +b3) また, , , , , , , ,

(51)

51 補足:RK4の係数(3/3) この解はα=1/3で古典的RK4,α=(2+√2)/6でGillのRK4を与える. 他にも4つの1パラメータ解が知られているが,そのうちの2つを示して おく(ただしα≠0). c2=c3=1/2に対してはb3=α≠0を自由パラメータとする次の1パラメータ 解が知られている. 6 / 1 3 / 2 6 / 1 0 3 3 1 0 1 0 0 ) 6 /( 1 ) 6 /( 1 2 / 1 2 / 1 0 0 0 2 / 1 2 / 1 0 0 0 0 0 α α α α α α − − − α α α α α 3 / 2 6 / 1 6 / 1 0 ) 3 /( 1 ) 12 /( 1 ) 4 /( 1 1 1 0 0 8 / 1 8 / 3 2 / 1 0 0 0 1 1 0 0 0 0 0 − − − 6 / 1 3 / 2 6 / 1 0 6 2 / 3 6 2 / 1 1 0 0 ) 12 /( 1 ) 12 /( 1 0 0 0 0 2 / 1 2 / 1 0 0 0 0 0 α α α α α α − − − −

(52)

1・2・2 陰的ルンゲ・クッタ法

陰的RK法はあるj>iについてaij

0なので,基本的に式 (1.2.1)をそのまま適用する必要がある.例えば2段陰的R K法に対するブッチャー配列と計算式は 2 1 22 21 2 12 11 1 b b a a c a a c

(

)

(

)

{

}

(

)

(

)

{

}

⎪⎩ ⎪ ⎨ ⎧ Δ + + Δ + Δ + = Δ + + Δ + Δ + = ) 2 ( 2 22 ) 1 ( 1 21 ) 2 ( ) 2 ( 2 12 ) 1 ( 1 11 ) 1 ( , , , , u t c t F a u t c t F a t u u u t c t F a u t c t F a t u u n n n n n n

(

)

(

)

{

(2)

}

2 2 ) 1 ( 1 1 1 , , u b F t c t u t c t F b t u un+ = n + Δ n + Δ + n + Δ および であり,u(1)とu(2)の連立方程式を解いた後にun+1を計算する. 一般にs段陰的RK法ではu(1), u(2), …, u(s)の連立方程式を ニュートン法等の繰り返し法で時間ステップ毎に解く必要 があり計算量が膨大となる.

(53)

53 半陰的RK法はj>iについてaij=0と設定するものであり,例 えば2段半陰的RK法に対するブッチャー配列と計算式は

(

)

(

)

{

(2)

}

2 2 ) 1 ( 1 1 1 , , u b F t c t u t c t F b t u un+ = nn + Δ + n + Δ および となる.この場合はu(1)およびu(2)に対する単独の陰的方程式 を順番に解いた後にun+1を計算すれば良いので,1段あたり の計算負荷はAM法と同程度となる. 陰的RK法はs段で最大2s次精度まで,半陰的RK法ではs段で 最大(s+1)次精度まで到達可能である. 2 1 22 21 2 11 1 0 b b a a c a c

(

(1)

)

1 11 ) 1 ( , u t c t F a t u u = n + Δ ⋅ n + Δ

(

)

(

)

{

(2)

}

2 22 ) 1 ( 1 21 ) 2 ( , , u a F t c t u t c t F a t u u = n + Δ n + Δ + n + Δ

(54)

陰的RK法(IRK法)および半陰的RK法(SIRK法)の例を挙げておく.

陰的オイラー法(1段1次IRK法) 陰的中点則(1段2次精度IRK法) CN法(2段2次SIRK法)

2段4次IRK法 2段3次SIRK法(ノルセット法) 1 1 1 1 2 / 1 2 / 1 2 / 1 2 / 1 2 / 1 2 / 1 1 0 0 0

(

)

(

)

(

) (

)

2 / 1 2 / 1 4 / 1 12 / 3 2 3 6 / 3 3 12 / 3 2 3 4 / 1 6 / 3 3 + + − −

(

) (

)

(

)

(

)

2 / 1 2 / 1 6 / 3 3 3 / 3 6 / 3 3 0 6 / 3 3 6 / 3 3 + − − + + 3段6次IRK法

(

)

(

)

18 / 5 9 / 4 18 / 5 36 / 5 15 / 15 9 / 2 30 / 15 36 / 5 10 / 15 5 24 / 15 36 / 5 9 / 2 24 / 15 36 / 5 2 / 1 30 / 15 36 / 5 15 / 15 9 / 2 36 / 5 10 / 15 5 + + + − + − − −

(55)

55 ここで,陰的オイラー法,陰的中点法,クランク・ニコルソン法(CN法) について補足しておく. 陰的オイラー法は1段1次精度陰的RK法とみなせ,ブッチャー配列と計 算式はそれぞれ, と記述できる.この場合の2つの計算式は等価でu(1)=un+1であり,これ を用いるとAM公式での陰的オイラー法, 1 1 + + = n + Δ n n u t F u が得られる. 1 1 1

(

(1)

)

) 1 ( , u t t F t u u = n + Δ ⋅ n + Δ

(

(1)

)

1 , u t t F t u un+ = n + Δ ⋅ n +Δ および

(56)

陰的中点則は1段2次精度陰的RK法とみなせ,ブッチャー配列と計算式 はそれぞれ, と記述できる.2つの計算式を比べるとu(1)=(un+1+un)/2となっており, これが陰的中点則, であることがわかる. および 1 2 / 1 2 / 1 ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ + Δ Δ + = (1) ) 1 ( , 2 2 u t t F t u u n n ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ + Δ ⋅ Δ + = +1 (1) , 2 u t t F t u un n n ⎟ ⎟ ⎠ ⎞ ⎜ ⎜ ⎝ ⎛ Δ + + ⋅ Δ + = + + 2 , 2 1 1 n n n n n u t F t t u u u

(57)

57 クランク・ニコルソン法(CN法)は2段2次精度陰的RK法とみなせ, ブッチャー配列と計算式はそれぞれ, と記述できる.この場合 u(1)=unu(2)=un+1であり,これがAM公式でのク ランク・ニコルソン法, であることがわかる. および 1 2 / 1 2 / 1

(

n n

)

n n u t F F u +1 = + Δ +1 + 2 n u u(1) =

(

(1)

)

(

(2)

)

) 2 ( , 2 , 2 F t t u t u t F t u u = n + Δ n + Δ n

(

(1)

)

(

(2)

)

1 , 2 , 2 F t t u t u t F t u un+ = n + Δ n + Δ n + Δ

(58)

1.時間進行法 1・1 線形多段解法 1・1・1 アダムス・バシュフォース公式 1・1・2 アダムス・モルトン公式 1・1・3 後退差分公式 1・2 ルンゲ・クッタ法 1・2・1 陽的ルンゲ・クッタ法 1・2・2 陰的ルンゲ・クッタ法 1・3 時間進行法の安定性解析 1・3・1 線形多段解法の絶対安定領域 1・3・2 ルンゲ・クッタ法の絶対安定領域 2.非圧縮性流れの計算アルゴリズム 2・1 差分格子系とMAC法系統の解法 2・1・1 レギュラー格子を用いる差分法の問題点 2・1・2 MAC法とスタガード格子 2・1・3 SMAC法 2・1・4 SOLA法(HSMAC法) 2・2 フラクショナル・ステップ法 2・2・1フラクショナル・ステップ法と分離誤差 2・2・2 DDのフラクショナル・ステップ法 2・3 SIMPLE法系統の解法 2・3・1 SIMPLE法 2・3・2 SIMPLER法 2・3・3 SIMPLEC法 講義内容 午前 ( 9:30-12:30) 午後 (13:30-16:30)

(59)

59

1・3 時間進行法の安定性解析

線形テスト問題 に対する時間進行法の数値安定性を 考える.まずこの問題の解析解は で与えられ,

λ

R

0ならばt>0でu(t) は有界となる.

u

dt

du

=

λ

( )

0

u

0

u

=

λ

=

λ

R

+

i

λ

I

( )

t u e t u e R tei I t u = 0 λ⋅ = 0 λ ⋅ λ ⋅ –2 –1 0 1 2 –2 –1 0 1 2 λ R λ I Stable Unstable 図1.6 線形テスト問題の安定領域 (複素平面)

(60)

補足:なぜ線形テスト問題を考えるのか(1/2) 流体運動の支配方程式は輸送方程式であるので,その本質を表現する モデル方程式(1次元の移流・拡散方程式の空間離散式)を考える. 2 2 x u x u U dt du δ δ ν δ δ + − = ここで,U:移流速度 ν:拡散係数 δ/δx:∂/∂x に対する空間離散オペレータ 解析的な扱いを容易にするため,x方向に周期的な場を仮定し,離散フー リエ変換を導入する. ( )

( )

[

( )

]

( ) k L N x L k N N k x k i t x u t u x x j N j j k = ∑ − = − − = = ⋅Δ − = , 2 1 2 / 2 / , exp , ˆ 1 0 π ω ω ~ ,

( )

, ˆ

( )

exp

[

( )

]

, 0 1 1 2 / 2 / − = + =

− − = N j x k i t u t x u N j N k k j ω ~

(61)

61 補足:なぜ線形テスト問題を考えるのか(2/2) ここで,ω’(k)とω”(k) は空間1階および2階微分に対する離散オペレー タの修正波数で,空間離散化手法に応じて定まる.例えば, 離散フーリエ変換によりモデル方程式を対角化する. ( ) [ ( ) ( )] ( ) 1 2 / 2 / , ˆ ˆ − − = ′ − ′′ − = k iU k u k k N N dt t u d k k νω ω ( ) ( ) ( ) ( )2 , k k k k ω ω ω ω′ = ′′ = ( ) ( ( ) ) ( ) ( ( ) ) ( )2 2 2 / 2 / sin , sin x x k k x x k k Δ Δ = ′′ Δ Δ = ′ ω ω ω ω フーリエ・スペクトル法: 2次精度中心差分: 以上より,モデル方程式は線形テスト問題(固有値問題)に帰着され, 固有値の実部は拡散項に,固有値の虚部は移流項に関係することが理 解される. ( ) ( ) ( ) ( ) k U k i t u dt t u d k I k R k I k R k k k k = λ ˆ , λ = λ + λ , λ = ν ω′′ , λ = ω ˆ なお,純粋移流問題の安定性はω’(k)の最大値,純粋拡散問題の安定性 はω”(k)の最大値に対応して定まる.

(62)

線形テスト問題の解の有界性が数値計算においてどのような条件で満 足されるかを検討するため,まず陽的オイラー法を線形テスト問題に 適用してみる.

( )

n

(

)

n n n u t u t u u +1 = + Δ ⋅ λ = 1+ λΔ この操作は,初期値u0=u 0,数値解の複素増幅率をξとして 0 u un =

ξ

n と記述するとき,陽的オイラー法の複素増幅率が

(

+ z

)

= 1 ξ ,ただし z = λΔt となることを意味する.ここでz=λΔt=λRΔt+iλIΔtとしている.

(63)

63 これから明らかなとおり,陽的オイラー法による数値解が有界であるた めの条件は 1 1+ ≤ = z

ξ

で与えられる.これを満足するzは複素 平面において(-1,0i)を中心とする半径1 の円の内側に存在する.この領域を陽的 オイラー法の絶対安定領域と呼ぶ.これ は,陽的オイラー法を用いて安定な数値 解を得るためには,時間刻み幅の設定に 制限があることを示している.具体的に は,λを負の実数とすると λ − ≤ Δt 2 の範囲に時間刻み幅Δtを設定する必要 がある. –3 –2 –1 0 1 –2 –1 0 1 2 λ RΔ t λ I Δ t

Euler explicit

Unstable Stable 図1.7 陽的オイラー法の 絶対安定領域

(64)

次に,陰的オイラー法を線形テスト問題に適用し絶対安定領域を調べる.

( )

1 1 + + = n + Δ n n u t u u λ これより,陰的オイラー法の複素増 幅率ξは次式で与えられる. ,ただし z = λΔt ( − z) = 1 1 ξ これに対応する絶対安定領域は次式 で与えられる. 1 1 1 ≤ − = z ξ これを満足するzは複素平面において (-1,0i)を中心とする半径1の円の外 側の全領域である.この領域は λR0となる複素平面の左半分を全 て含むので,陰的オイラー法は λR0に対し時間刻み幅Δtによらず 無条件安定な数値解を与える. –1 0 1 2 3 –2 –1 0 1 2 λ RΔ t λ I Δ t

Euler implicit

Unstable Stable 図1.8 陰的オイラー法の 絶対安定領域

(65)

65 なお,絶対安定の緩和表現として,絶対 安定領域が複素平面上で無限扇形領域 {z; -α < (π-arg z) < α} (0<α<π/2) を含む場合,A(α) 安定と呼ぶ. Re(z) α α O Im(z) Stable Unstable 陰的オイラー法のように絶対安定領域が複素平面の左半分(λR0)全 てを含む時間進行法はA安定(絶対安定)という. 図1.9 A(α)安定 ところで,陽的オイラー法および陰的オイラー法は1次精度の時間進 行法であるため打ち切り誤差の影響が懸念される

(66)

そこで2次精度の時間進行法である中点蛙跳び法(leap-frog法)を線 形テスト問題に適用してみる. これに un=ξnu0 および z=λΔt を代入して整理すると,中点蛙跳び法 複素増幅率ξは の解として次式で得られる.ここでは複素増幅率ξの解を求めるのでは なく,絶対安定領域の境界|ξ|=1を与えるzの範囲を調べてみる.そのた め上式を変形しξ=e iθを代入すると,

( )

n n n u t u u +1 = −1 + 2Δ ⋅ λ 0 1 2 2 ξ = ξ z

( )

θ ξ ξ θ θ θ θ cos 2 2 1 2 1 2 2 i i e e i e e z i i i i = − = − = − = − を得る.これは,zが虚軸上の(-i, +i)の範囲のみで安定,つまり中点蛙跳 び法はλR=0以外では数値解が無条件に不安定となることを示している. 以上のように,時間進行法は必ずしも精度が高いものが適切なわけで はなく,数値安定性も含めて検討する必要がある.

(67)

67

1・3・1 線形多段階法の絶対安定領域

線形多段階法の一般形(ただし

α

1≠0), を線形テスト問題に適用し,un=

ξ

nu0および

z=λΔt

を代入 すると次式を得る. この式による複素増幅率の根が全て |

ξ

|≦1 を満足する場合 に線形多段階法は絶対安定である.

− = =− + + = 1 N j 1 N j j n j j n ju F t 1 α β Δ ∑ ∑ − = =− + + = 1 1 0 N j j N j n j j n jξ z β ξ α

(68)

線形多段階法の安定限界曲線(絶対安定領域の境界), つまり |

ξ

|=1 を与える z は,LM法の安定限界関数,

( )

に対して

ξ

=eiθ を代入し,0から2πの範囲の

θ

に対すzを描けば良い. 以下に,AM公式,AM公式およびBD公式に対する安定限界関 数と安定限界曲線を示しておく. j n j N j N j j n j z + − = − = + ∑ ∑ = = ξ β ξ α ξ ϕ 1 1 LM法の安定限界関数

(69)

69 AB公式 陽的オイラー法(AB1) 1 − = ξ z

(

)

1 3 1 2 − − = ξ ξ ξ z

(

)

5 16 23 1 12 2 2 + − − =

ξ

ξ

ξ

ξ

z

(

)

9 37 59 55 1 24 2 3 3 − + − − = ξ ξ ξ ξ ξ z AB2 AB3 AB4 –3 –2 –1 0 1 –2 –1 0 1 2 λ RΔ t λ I Δ t AB3 AB4 AB2 Euler explicit us u s u s us u u 図1.10 AB法の安定限界曲線

(70)

AM公式 陰的オイラー法(AM1) クランク・ニコルソン法(AM2) AM3 AM4 ξ ξ −1 = z

(

)

1 1 2 + − = ξ ξ z

(

)

1 8 5 1 12 2 + − = ξ ξ ξ ξ z

(

)

1 5 19 9 1 24 2 3 2 + − + − = ξ ξ ξ ξ ξ z –6 –4 –2 0 2 –4 –2 0 2 4 λ RΔ t λ I Δ t AM3 AM4 AM2 AM1 Euler explicit us u s us u s u s 図1.11 AM法の安定限界曲線

(71)

71 BD公式 陰的オイラー法(BD1) BD2 BD3 BD4 ξ ξ −1 = z 2 2 2 1 4 3

ξ

ξ

ξ

− + = z 3 2 3 6 2 9 18 11 ξ ξ ξ ξ − + − = z 4 2 3 4 12 3 16 36 48 25 ξ ξ ξ ξ ξ − + − + = z –4 0 4 8 12 –8 –4 0 4 8 λ RΔ t λ I Δ t BD3 BD4 BD2 BD1 Euler explicit u s u s us u s us 図1.12 BD法の安定限界曲線 –6 –3 0 3 6 –6 –3 0 3 6 λ RΔ t λ I Δ t BD3 BD4 u s u s 73o 86o 図1.13 BD3とBD4の原点付近の安定限界曲線

(72)

以上より, 線形多段解法(AB法,AM法,BD法)では,精度が上がると 絶対安定領域が狭くなることがわかる. また,これらの中でA安定な時間進行法は,陰的オイラー 法(AM1),クランク・ニコルソン法(AM2),および2次 精度後退差分法(BD2)のみである. なお,BD3はA(86°)安定BD4A(73°)安定である.

参照

関連したドキュメント

⑥'⑦,⑩,⑪の測定方法は,出村らいや岡島

方法 理論的妥当性および先行研究の結果に基づいて,日常生活動作を構成する7動作領域より

ベクトル計算と解析幾何 移動,移動の加法 移動と実数との乗法 ベクトル空間の概念 平面における基底と座標系

研究計画書(様式 2)の項目 27~29 の内容に沿って、個人情報や提供されたデータの「①利用 目的」

LicenseManager, JobCenter MG/SV および JobCenter CL/Win のインストール方法を 説明します。次の手順に従って作業を行ってください。.. …

12―1 法第 12 条において準用する定率法第 20 条の 3 及び令第 37 条において 準用する定率法施行令第 61 条の 2 の規定の適用については、定率法基本通達 20 の 3―1、20 の 3―2

そのため本研究では,数理的解析手法の一つである サポートベクタマシン 2) (Support Vector

相対成長8)ならびに成長率9)の2つの方法によって検