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

流体シミュレーション基礎

N/A
N/A
Protected

Academic year: 2021

シェア "流体シミュレーション基礎"

Copied!
53
0
0

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

全文

(1)

中部 CAE 懇話会:「流体伝熱基礎講座」

第4回:流体計算の時間進行法と計算アルゴリズム

名古屋工業大学・大学院工学研究科・機能工学専攻 教授 森西洋平

講義内容:

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 HSMAC 法(SOLA 法)

2・2 フラクショナル・ステップ法

2・2・1 フラクショナル・ステップ法と分離誤差

2・2・2 DD のフラクショナル・ステップ法

2・3 SIMPLE 法系統の解法

2・3・1 SIMPLE 法

2・3・2 SIMPLER 法

2・3・3 SIMPLEC 法

(2)

第1章 時間進行法

目的: 1階常微分方程式に対する時間進行法を理解する. 本章では変数

u

( )

t

に関する次の1階常微分方程式の初期値問題の時間進行法(数値時間積分法) を考える. ・

( )

F

(

t,u

( )

t

) (

t t0

)

dt t du = > (1.1)

u

( )

t

0

=

u

0 (1.2) つまり,時間刻み幅

Δ

t

毎の時間離散点上の値

u

(

t

0

+

Δ

t

)

,

u

(

t

0

+ 2

Δ

t

)

,

u

(

t

0

+

3

Δ

t

)

,

L

, を,式(1.2) を初期条件として式(1.1)を満足させながら求めたい. 時間進行法を構築するため,まず

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

( )

+

Δ

(

( )

)

+

Δ

(

( )

)

+

Δ

(

( )

)

+

=

2 3 2

,

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) 時間に関する離散点上の値を表現するため,

t

n

t

n

=

Δ

t

n+1

=

t

n

+

Δ

t

( )

n n

u

t

u

=

( )

(

n n

)

n

F

t

u

t

F

=

,

の表記を使用する.以降も同様. 最も単純な時間進行法はテイラー展開の右辺第3項 以降を打ち切って構成される陽的オイラー法である. ・

u

n+1

=

u

n

+

Δ

t

F

n あるいは ・

(

)

n n n

F

t

u

u

=

Δ

+1 陽的オイラー法では,

t

nにおける勾配

F

n

u

nから 1 + n

u

を計算する. 図 1.1 陽的オイラー法による時間進行 t u(t) t n

Δ

t

Euler explicit

F n t n+1 u(t) u n u n+1

(3)

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

( )

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

u

n+1を計算する際に,時刻

t

n および

t

n+1での情報のみならず,さらに過去 の情報(時刻

t

n−1,

t

n−2,・・・)も利用して高次精度化を行う. ・計算の出発点近傍で別の時間進行法を使用する必要があること,および時間 刻み幅の変更が容易でないことに注意が必要. ・代表は, アダムス・バシュフォース(AB)公式, アダムス・モルトン(AM)公式, 後退差分(BD)公式. 2) 1段解法:・

u

n+1を計算する際に,基本的に時刻

t

n での情報(およびそれから計算される値) のみを利用して高次精度化を行うもの. ・代表は,ルンゲ・クッタ(RK)法. 以下本章では,線形多段階法としてアダムス・バシュフォース(AB)公式,アダムス・モルトン(AM) 公式,後退差分(BD)公式,また1段階法としてルンゲ・クッタ(RK)法を取り上げ紹介する.また, これら時間進行法の数値安定性についても示す. 補足: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

も時間と空間の双方 に依存するものとする.ここで,空間に等間隔格子(xi =iΔx, 0iN+1)を使用し,離散値 をu

( )

t,xi =ui

( )

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

f

(

i

N

)

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

ν

空 間 離 散 化 後 の 変 数 は

u

i

=

u

i

( )

t

な の で 偏 微 分 が 常 微 分 に 変 わ る . さ ら に 変 数 を

[

]

T N

u

u

u

1

,

2,

L

,

=

u

とベクトル表記し,端点

i

= N

0

,

+

1

に対する境界条件も含めて上式を書き直 すと次の離散システム方程式を得る. ・

( )

A

( ) ( ) ( )

t

t

t

F

(

t

( )

t

)

dt

t

d

u

b

u

u

,

=

+

=

( )

t

A

は差分の係数を要素とする

(

N

×

N

)

の行列,

b

( )

t

は外力と境界条件を含むベクトルである. このように流体運動の支配方程式を空間離散化した後に変数をベクトル表記すると,空間離散化 後の時間発展方程式は基本的に式(1.1)の形となる.空間多次元の場合も同様である.なお,離散 システム方程式の変数はベクトル

u

,式(1.1)の変数はスカラー

u

であるが,時間進行法の構成に

(4)

1・1 線形多段階法

(

N

+

1

)

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

0

1

α

. ・

=

Δ

=− =− + + 1 1

1

N j j N j n j j n j

u

F

t

α

β

特に,

α

1

=

1

α

0

=

1

β

1

=

0

α

j

(

j

1

)

=

0

とする次の時間進行法はアダムス・バシュフ ォース公式(Adams -Bashforth formula)と呼ばれる陽解法(

β

1

=

0

)となる.

(

) (

=

+

+

+

L

)

Δ

− − − + 2 2 1 1 0 1 n n n n n

F

F

F

t

u

u

β

β

β

アダムス・バシュフォース公式 図 1.2 アダムス・バシュフォース公式による時間進行 また,

α

1

=

1

α

0

=

1

β

1

0

α

j

(

j

1

)

=

0

とする次の時間進行法はアダムス・モルトン 公式(Adams -Moulton formula)と呼ばれる陰解法となる.

(

) (

=

+

+

+

+

L

)

Δ

− − − − + + 2 2 1 1 0 1 1 1 n n n n n n

F

F

F

F

t

u

u

β

β

β

β

アダムス・モルトン公式 図 1.3 アダムス・モルトン公式による時間進行 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 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

(5)

さらに,

α

1

0

β

1

=

1

β

j

(

j

0

)

=

0

とする次の時間進行法は後退差分公式(Backward difference formula)と呼ばれる.後退差分公式も陰解法である. ・

(

)

1 1 1 0 1 1 + − −

=

+

Δ

+

+

+

n n n n

F

t

u

u

u

α

α

L

α

後退差分公式 図 1.4 後退差分公式による時間進行 以下でそれぞれに対する4次精度までの公式を示す. 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

(6)

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

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

(

)

n n 1 n F t u u + − = Δ 陽的オイラー法(AB1) ・

(

) (

n n 1

)

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

(

) (

n n 1 n 2

)

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

(

) (

n n 1 n 2 n 3

)

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

(

) (

0 1 1 2 2

)

0

1

=

+

+

+

Δ

− − − − +

L

n n n n n

F

F

F

t

u

u

β

β

β

とおき,時刻

t

nまわりのテイラー展開, ・

(

)

=

+

Δ

+

Δ

+

Δ

+

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

u

n n n n n n ・ −

=

( )

Δ

+

( )

Δ

3

( )

Δ

3

+

L

3 2 2 2

6

1

2

1

t

q

dt

F

d

t

q

dt

F

d

t

q

dt

dF

F

F

n n n n q n

L

,

2

,

1

,

0

=

q

から,AB 公式が指定した時間精度(2次精度ならば

O

(

Δ

t

2

)

)で近似されるように係数

β

0

β

1, 2 −

β

,・・・を定める.例として2次精度アダムス・バシュフォース法(AB2)を取り上げる. ・

(

)

0 1 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

)

(

t

0

O

Δ

O

(

Δ

t

1

)

の列それぞれの係数の合計を0とする2つの条件から,係数

β

0

β

1に対する 連立方程式が得られる.

(7)

⎪⎩

=

=

+

− −

2

1

1

1 1 0

β

β

β

これを解き,

2

3

0

=

β

2

1

1

=

β

を得る.これはAB2公式を与える.

(

1

) (

3

1

)

2

1

+

=

Δ

n n n n

F

F

t

u

u

なお,テイラー表の3列目(O(Δt2))の合計は 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

Δ

=

Δ

=

Δ

⎛ −

=

β

ε

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

(

3Fn Fn 1

)

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

(8)

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

時間1次精度から4次精度までのアダムス・モルトン(AM)公式は以下のとおりである. ・

(

)

n 1 n 1 n F t u u + − = + Δ 陰的オイラー法(AM1) ・

(

) (

n 1 n

)

n 1 n F F 2 1 t u u + = − + + Δ クランク・ニコルソン法(AM2) ・

(

) (

n 1 n n 1

)

n 1 n F F 8 F 5 12 1 t u u + − = + + Δ AM3 ・

(

) (

n 1 n n 1 n 2

)

n 1 n F F 5 F 19 F 9 24 1 t u u + + + − + = − Δ AM4 1次精度の公式(AM1)は陰的オイラー法であり,2次精度の公式(AM2)は通常クランク・ニ コルソン(Crank-Nicolson, CN)法と呼ばれる.AM 公式はun+1の値を得るためにFn+1=F

( )

un+1 を必要とするが,このような時間進行法は陰解法と呼ばれる. 補足:AM 公式の導出 AM 公式を, ・

(

) (

1 1 0 1 1

)

0

1

=

+

+

+

Δ

− − + +

L

n n n n n

F

F

F

t

u

u

β

β

β

とおき,時刻

t

nまわりのテイラー展開, ・

(

)

=

+

Δ

+

Δ

+

Δ

+

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

u

n n n n n n ・ +

=

+

Δ

+

Δ

+

3

Δ

3

+

L

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 ・ −

=

( )

Δ

+

( )

Δ

3

( )

Δ

3

+

L

3 2 2 2

6

1

2

1

t

q

dt

F

d

t

q

dt

F

d

t

q

dt

dF

F

F

n n n n q n

L

,

2

,

1

,

0

=

q

から,AM 公式が指定した時間精度(2次精度ならば

O

(

Δ

t

2

)

)で近似されるように係数

β

1

β

0, 1 −

β

,・・・を定める.例としてクランク・ニコルソン法(AM2)を取り上げる. ・

(

)

1 1 0

0

1

=

Δ

+ + n n n n

F

F

t

u

u

β

β

AM2の係数

β

1

β

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

(

)

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

(9)

)

(

t

0

O

Δ

O

(

Δ

t

1

)

の列それぞれの係数の合計を0とする2つの条件から,係数

β

1

β

0に対する 連立方程式が得られる.

⎪⎩

=

=

+

2

1

1

1 0 1

β

β

β

これを解き,

2

1

0 1

=

β

=

β

を得る.これはクランク・ニコルソン法(AM2)を与える.

(

n n

) (

F

n

F

n

)

t

u

u

=

+

Δ

+ + 1 1

2

1

なお,テイラー表の3列目(O(Δt2))の合計はクランク・ニコルソン法の打ち切り誤差の初項,

(

)

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

Δ

=

Δ

⎛ −

=

β

ε

, を与える. 補足:陰解法による計算 例えばクランク・ニコルソン法(AM2)は実際には上式を変形した次の形で使用される. ・ n 1

(

n 1 n 1

)

n F

(

tn un

)

2 t u u t F 2 t u + −Δ + , + = +Δ , 右辺は既知量であるが左辺は未知量un+1を含む関数であり,上式を満足するun+1を特定するため に通常繰り返し計算が必要となる.

(10)

1・1・3 後退差分公式

時間1次精度から4次精度までの後退差分(BD)公式は以下のとおりである. ・

(

)

n 1 n 1 n F t u u + − = + Δ 陰的オイラー法(BD1) ・

(

)

n 1 1 n n 1 n F t 2 u u 4 u 3 + − + = + − Δ BD2 ・

(

)

n 1 2 n 1 n n 1 n F t 6 u 2 u 9 u 18 u 11 + − + − − − = + Δ BD3 ・

(

)

n 1 3 n 2 n 1 n n 1 n F t 12 u 3 u 16 u 36 u 48 u 25 + − − − + = + − + − Δ BD4 1次精度の公式(BD1)は陰的オイラー法である.これら後退差分公式はギアー(Gear)法と呼 ばれることもある.BD 公式も陰解法である. 補足:BD 公式の導出 BD 公式を, ・

(

)

1

0

2 2 1 1 0 1 1

=

Δ

+

+

+

+

+ − − − + n n n n n

F

t

u

u

u

u

α

α

α

L

α

とおき,時刻

t

n+1まわりのテイラー展開, ・

=

(

+

)

Δ

+

[

(

+

)

Δ

]

[

(

+

)

Δ

]

+

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

から,BD 公式が指定した時間精度(2次精度ならば

O

(

Δ

t

2

)

)で近似されるように係数

α

1

α

0, 1 −

α

α

2,・・・を定める.例として2次精度後退差分公式(BD2)を取り上げる. ・

(

)

1

0

1 1 0 1 1

=

Δ

+

+

+ − + n n n n

F

t

u

u

u

α

α

α

BD2の係数

α

1

α

0

α

1を定めるためテイラー表を利用する. 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

α

α

α

α

α

α

α

α

α

α

α

α

(11)

)

(

Δt

−1

O

O

(

Δ

t

0

)

および

O

(

Δ

t

1

)

の列それぞれの係数の合計を0とする3つの条件から,係数

α

1, 0

α

α

1に対する連立方程式が得られる.

=

+

=

+

=

+

+

− − −

0

4

1

2

0

1 0 1 0 1 0 1

α

α

α

α

α

α

α

これを解き,

2

3

1

=

α

α

0

=

2

2

1

1

=

α

を得る. これはBD2公式を与える.

(

1 1

)

1

2

4

3

+ − +

=

Δ

+

n n n n

F

t

u

u

u

なお,テイラー表の4列目(O(Δt2))の合計は BD2公式の打ち切り誤差の初項,

(

)

(

)

3

1

6

8

2 2 1 2 2 2 1 2 2 1 0

t

O

t

dt

F

d

t

dt

F

d

n n

Δ

=

Δ

=

Δ

+

=

+ + −

α

α

ε

, を与える.

(12)

1・2 ルンゲ・クッタ法

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

(

)

(

)

(

)

⎪⎪

Δ

+

Δ

+

=

Δ

+

Δ

+

=

= + = 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

,

,

(1.2.1) ただし,係数に対し ・

c

s

a

(

i

s

)

j ij i

=

=1

,

1

(1.2.2) の条件を与える. 係数 bici,およびaij は要求精度を満たすように式(1.1)のテイラー展開との比較から決定され る.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) なお, j≥ に対してi

a

ij

=

0

とするものを(陽的)RK 法と呼ぶ.s 段(陽的)RK 法の到達可 能精度

p

( )

s

は次表となることが知られている.

( )

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

精度と計算量の兼ね合いからは4段4次精度公式が最も効率が良いことがわかる. また,j> に対してi

a

ij

=

0

とするものを半陰的RK 法と呼ぶ.s 段半陰的 RK 法の到達可能精 度は

p

( ) (

s

= s

+

1

)

となることが知られている.さらに,ある j> についてi

a

ij

0

のものを陰的 RK 法と呼ぶが,s 段陰的 RK 法の到達可能精度は

p

( )

s

=

2

s

である. 補足:係数に対する条件式(1.2.2)に対しての必然性はないが,このように設定すると扱い易い形 となるので通常この条件を加える.また,常微分方程式の数値解法の教科書におけるRK 法の一 般公式は式(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

,

,

しかしここでは,計算流体力学への応用における明快性から式(1.2.1)を一般公式として採用する.

(13)

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

陽的RK 法はj≥ に対してi

a

ij

=

0

と設定するものであり,s 段陽的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

この場合(

c

1

=

0

として), ・

t

( )

i

=

t

n

+

c

i

Δ

t

,

(

1

i

s

)

F

( )

i

=

F

(

t

( )

i

,

u

( )

i

)

,

(

1

i

s

)

と記述すると,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

,

,

,

なおこの公式から,

c

ii 段目の計算時点での t からttの間の到達割合いを意味することがわ かる.以下4次精度までの陽的RK法の公式の具体例を挙げる. まず,陽的オイラー法は1段1次精度陽的 RK 法(RK1)と見なすことができ,対応するブッチ ャー配列と計算式は

1

0

0

陽的オイラー法(RK1) ・

⎪⎩

Δ

+

=

=

=

+1 (1) ) 1 ( ) 1 (

,

F

t

u

u

t

t

u

u

n n n n となる.これが陽的オイラー法 ・

u

n+1

=

u

n

+

Δ

t

F

n と一致することは容易に理解できる.

(14)

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 ここで

b

2

=

α

を自由パラメータに選ぶと,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 の一般係数(αは自由パラメータ) 特に,α=1の場合を修正オイラー法,α=1 /2の場合を Heun 法(改良オイラー法)と呼ぶ.また 4 3 / = α の場合はRalston の最適公式である. 修正オイラー法(α =1) Heun 法(改良オイラー法,α =1 /2) Ralston の最適公式(α=3 /4

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.5 RK2(修正オイラー法)による時間進行

t

u(t)

t

n

t

n+1

RK2

u

n+1

u

(2)

=

u

(1)

u

n

t

(2)

t

(1)

=

F

(1)

F

(2)

Δ

t/2

u(t)

(

α

=1, Modified Euler)

Δ

t/2

(15)

補足:RK2の係数 まずF=F

(

t,u

( )

t

)

の時間微分は, F dt du = , DF dt u d 2 2 = , 2

( )

u 3 3 F DF F D dt u d = +

( )

( )

2

( )

u u u 2 3 4 4 DF DF 3 F DF F F D F D dt u d = + + + と書ける.ただしF=F

(

t,u

( )

t

)

Fu =∂F/∂u,および 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 ∂ ∂ + ∂ ∂ ∂ + ∂ ∂ ∂ + ∂ ∂ = とする.これより,u

(

tt

)

のテイラー展開は次式で記述される.

(

) ( )

[

D

F

( )

DF

F

u

]

t

DF

t

tF

t

u

t

t

u

+

Δ

=

+

Δ

+

Δ

2

+

Δ

3 2

+

!

3

2

( )

( )

( )

[

+ + +

]

+L Δ + t D F D F Fu DF Fu 3DF DF ! 4 2 2 3 4 次に,RK2の一般公式における

F

(1),

F

(2)を

t

n

=

t

および

u

n

=

u

( )

t

まわりにテイラー展開 すると次式を得る.

F

(1)

=

F

F

(2)

=

F

(

t

+

c

2

Δ

t

,

u

( )

t

+

Δ

ta

21

F

(1)

)

+

L

+

Δ

+

+

Δ

+

=

F

u

F

a

t

c

t

F

u

F

a

t

c

t

F

2 21 2 2 21 2

2

これをRK2の時間進行の式,

u

n+1

=

u

n

+

Δ

t

(

b

1

F

(1)

+

b

2

F

(2)

)

,に代入すると,RK2は

u

(

t

+

Δ

t

) ( )

=

u

t

+

Δ

t

(

b

1

+

b

2

)

F

+

Δ

t

2

(

b

2

c

2

F

t

+

b

2

a

21

FF

u

)

+

L

の計算を行っていることに対応する.ただしFt =∂F/∂tである.これをu

(

tt

)

のテイラー展開 と比較してO

( )

Δt2 まで係数を一致させ,さらに式(1.2.2)の条件も加えると,RK2 の係数に対する 条件式を得る. ・

c

2

=

a

21

b

1

+ b

2

=

1

b

2

c

2

=

1

/

2

これは自由度1の連立方程式(式3つ,変数4つ)であるので,

b

2

=

α

を自由パラメータとして 係数の解を表現すると

c

2

= a

21

=

1

/(

2

α

)

b

1

= 1

α

を得る.

(16)

3段3次精度 RK 法(RK3) 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段陽的RK 法に対する係数のブッチャー配列は以下となる. 3 2 1 32 31 3 21 2

0

0

0

0

0

0

0

b

b

b

a

a

c

a

c

代表的な3段3次精度RK 法(RK3)に対する係数のブッチャー配列を挙げておく. 古典的RK3(

c

2

=

1

/

2

,

c

3

=

1

) Heun のRK3(

c

2

=

1

/

4

,

c

3

=

2

/

3

)

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

Ralston のRK3(

c

2

=

1

/

2

,

c

3

=

3

/

4

) Wray のRK3(

c

2

=

8

/

15

,

c

3

=

2

/

3

)

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

b

1

=

0

となるRK3(

c

2

=

1

/

6

,

c

3

=

3

/

4

) Williamson のRK3(

c

2

=

1

/

3

,

c

3

=

3

/

4

)

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

これらのうち,

b

1

=

0

となるRK3は更新方式における低容量型RK3である.つまり

b

1

=

0

に よって

u

n+1の計算に

F

( )

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

(17)

補足:RK3の係数 RK2と同様にしてRK3に対する係数の条件式も得られる. ・

c

2

=

a

21

c

3

=

a

31

+

a

32

b

1

+

b

2

+

b

3

=

1

b

2

c

2

+ c

b

3 3

=

1

/

2

b

2

c

22

+ c

b

3 32

=

1

/

3

b

3

a

32

c

2

=

1

/

6

これは自由度2の連立方程式(式6つ,変数8つ)である.

c

2

c

3を自由パラメータとして係数 の解を表現すると,

c

2

c

3

c

2

0

c

3

0

c

2

2

/

3

に対して

a

21

=

c

2

(

)

2 3 2 2 2 3 31

c

c

3

c

2

1

c

3

c

c

a

×

=

, 2 2 3 2 3 32

c

c

2

c

3

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

=

(

3 2

)

3 2 3

6

3

2

c

c

c

c

b

=

を得る.また,

b

3

=

α

0

を自由パラメータとして,

c

2

= c

3

=

2

/

3

の場合に対する係数の解,

α

α

α

α

4

/

3

4

/

1

0

)

4

/(

1

)

4

/(

1

3

/

2

3

/

2

0

0

3

/

2

3

/

2

0

0

0

0

および

c

2

=

2

/

3

c

3

=

0

の場合に対する係数の解,

α

α

α

α

4

/

3

4

/

1

0

)

4

/(

1

)

4

/(

1

0

0

0

3

/

2

3

/

2

0

0

0

0

が知られている.

(18)

4段4次精度 RK 法(RK4) 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段陽的RK 法に対する係数のブッチャー配列は以下となる. 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

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

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

Gill のRK4

(

) (

)

(

)

(

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

+

+

補足:RK4の係数 RK2あるいはRK3と同様にしてRK4に対する係数の条件式も得られる. ・

c

2

=

a

21

c

3

=

a

31

+

a

32

c

4

=

a

41

+

a

42

+

a

43

b

1

+

b

2

+

b

3

+

b

4

=

1

b

2

c

2

+

b

3

c

3

+

b

4

c

4

=

1

/

2

(19)

b

2

c

22

+

b

3

c

32

+

b

4

c

42

=

1

/

3

b

2

c

23

+

b

3

c

33

+

b

4

c

43

=

1

/

4

b

3

a

32

c

2

+

b

4

(

a

42

c

2

+

a

43

c

3

)

=

1

/

6

b

3

a

32

c

22

+

b

4

(

a

42

c

22

+

a

43

c

32

)

=

1

/

12

b

3

a

32

c

2

c

3

+

b

4

(

a

42

c

2

+

a

43

c

3

)

c

4

=

1

/

8

b

4

a

43

a

32

c

2

=

1

/

24

これは自由度2の連立方程式(式11,変数13)である. まず

c

2

c

3を自由パラメータとし,

c

2

c

3

(

c

2

1

)(

c

3

1

)(

c

2

c

3

)

0

の場合についてRK4の 係数の解を表現すると,

c

4

=

1

a

21

=

c

2

(

)

(

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

2

c

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

2

1

1

12

2

c

c

c

c

b

=

+

+

(

3 2

)(

2

)

2 3 2

12

c

c

2

c

c

1

1

c

b

=

(

3 2

)(

3

)

3 2 3

12

c

c

1

2

c

c

1

c

b

=

, また,

a

41

=

1

(

a

42

+

a

43

)

b

4

=

1

(

b

1

+

b

2

+

b

3

)

を得る.この解は

c

2

=

1

/

3

c

3

=

2

/

3

でKutta の RK4を与える.

2

/

1

3 2

= c

=

c

に対しては

b

3

=

α

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

α

α

α

α

α

α

この解はα=1 /3で古典的RK4,α=

(

2+ 2

)

/6でGill のRK4を与える.他にも4つの1パラ メータ解が知られているが,そのうちの2つを示しておく(ただし

α

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

α

α

α

α

α

α

参照

関連したドキュメント

“top cited” papers of an author and to take their number as a measure of his/her publications impact which is confirmed a posteriori by the results in [59]. 11 From this point of

The input specification of the process of generating db schema of one appli- cation system, supported by IIS*Case, is the union of sets of form types of a chosen application system

We construct a cofibrantly generated model structure on the category of flows such that any flow is fibrant and such that two cofibrant flows are homotopy equivalent for this

W ang , Global bifurcation and exact multiplicity of positive solu- tions for a positone problem with cubic nonlinearity and their applications Trans.. H uang , Classification

It is suggested by our method that most of the quadratic algebras for all St¨ ackel equivalence classes of 3D second order quantum superintegrable systems on conformally flat

Homotopy perturbation method HPM and boundary element method BEM for calculating the exact and numerical solutions of Poisson equation with appropriate boundary and initial

In particular, we show that the q-heat polynomials and the q-associated functions are closely related to the discrete q-Hermite I polynomials and the discrete q-Hermite II

Next, we prove bounds for the dimensions of p-adic MLV-spaces in Section 3, assuming results in Section 4, and make a conjecture about a special element in the motivic Galois group