Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
線形移流方程式の厳密解
c
t = 0 10 20 30
線形移流方程式の差分近似
時間微分については、陽解法を採用
空間微分に中心差分を用いると
fj±1/2 の補間を とすると、
t
ff
t
fn
j
n
j
1
x
ff
x
fn
j
n
j
21
21
2
1
21
n
j
n
jn
j
fff
x
ff
x
fn
j
n
j
2
11
線形移流方程式の差分近似
線形移流方程式
を中心差分で差分近似すると、
整理すると、
0
x
fc
t
f
02
11
1
x
ffc
t
ff n
j
n
j
n
j
n
j
n
j
n
j
n
j
n
j fx
tcff
x
tcf 11
1
22
n
n+1
j–1 j+1 j
x
t c
初期条件・境界条件
今回の例では、x 方向に等間隔に50格子とする。Δx = 1 m、Δt = 1 s とする
初期条件
境界条件は周期境界条件とする
)13,7(0
)1310(13
)107(7
)(
xx
xx
xx
xf
051 ff
差分解の例(中心差分)
t = 0 10 20 30 40 50
誤差が分散
c = 0.3 m/s
Δt = 1 s
Δx = 1 m
別の差分近似
時間微分は同様に、陽解法を採用
空間微分は風上側の格子点を採用した片側差分を用いると
上記のような風上(上流)側の点のみ使う差分形式を風上(上流)差分という
t
ff
t
fn
j
n
j
1
x
ff
x
fn
j
n
j
1
別の差分近似
線形移流方程式
を風上差分で差分近似すると、
整理すると、
0
x
fc
t
f
01
1
x
ffc
t
ff n
j
n
j
n
j
n
j
n
j
n
j
n
j fx
tcf
x
tcf
11
1
n
n+1
j–1 j+1 j
x
t c
差分解の例(風上差分)
t = 0 10 20 30 40 50
誤差が拡散
c = 0.3 m/s
Δt = 1 s
Δx = 1 m なぜ?
2
2
1111
1111
11
1
1
2
2
2
22
2
1
2
1
0
0
x
fc
x
fc
x
fffc
x
ffc
x
fffc
x
ffffc
x
ffcc
x
ffcc
cforx
ffc
cforx
ffc
t
f
jjjjj
jjjjjjjj
jjjj
jj
jj
j
風上差分は、移流(中央)差分と拡散差分を含んでいる!
離散化誤差の振る舞い
中心差分近似
打ち切り誤差の主要項は奇数次の微分係数
風上差分近似
打ち切り誤差の主要項は偶数次の微分係数
n
j
n
j
n
jf
x
x
ff
x
f
62
211
n
j
n
j
n
jf
x
x
ff
x
f
2
1
分散的
拡散的
誤差の振舞い
同じ風上差分でも、計算条件によって計算誤差の時間発展の様子が異なっている
右の例では、c > 1
のとき誤差が増幅しているが、c ≤ 1
では増幅せず
c = 0.95 m/s
c = 1.00 m/s
c = 1.05 m/s
t = 0 10 20 30
Δt = 1 s , Δx = 1 m
2011/10/31 12
以上が 前回までの話
拡散方程式
拡散方程式
拡散方程式の解は、上に凸(∂2f /∂x2 < 0)のところで減少(∂f /∂t < 0)し、下に凸(∂2f /∂x2 > 0)のところで増加(∂f /∂t >
0)するので、分布を平滑化させる解となる
2
2
x
fa
t
f
a(≥ 0)は拡散係数で定数とする
f(x)
拡散方程式の厳密解
01)0(
sin)(),(
2
2
tatH
xktHtxf
x
fa
t
f
a(≥ 0)は拡散係数で定数とする
xketxf
eHeAH
kabHkatd
Hd
tb
tbtb
sin),(
22
問題: x方向には周期的と仮定する
解:
拡散方程式の差分近似
拡散方程式
を中心差分で差分近似すると、
整理すると、
2
2
x
fa
t
f
211
1 2
x
fffa
t
ff n
j
n
j
n
j
n
j
n
j
n
j
n
j
n
j
n
j fx
taf
x
taf
x
taf 12212
1 21
n
n+1
j–1 j+1 j
x
t
拡散方程式の差分解
a = 0.3 Δt = 1 s
Δx = 1 m
安定性解析
差分近似などによる離散化によって、大気要素の時々刻々の状態を求めることができる
しかし、これまで見てきたように、時間発展の過程で数値的な不安定が発生し、計算が破綻してしまうことがある
計算条件が数値的な不安定を起こしやすいかどうかのチェック
2011/10/31 18
フーリエ級数
周期 2l をもつ関数 f (x) は、三角関数の和として表現できる
オイラーの公式 を用いると
波数 k = nπ/l を用いて
1 1
0 sincos2
)(n n
nnl
xnb
l
xna
axf
xixeix sincos
n
nl
xincxf
exp)(
k
k ikxcxf )exp()(
フーリエ級数の直交性
1 1
0 sincos2
)(n n
nnl
xnb
l
xna
axf
0000
0
sincos2
coscos)(
0
1 1
0
m
m
l
ln n
nn
l
l
bnm
nma
m
ma
dxl
xnb
l
xna
a
l
xmdx
l
xmxf
nm
nmba
dxl
xnb
l
xna
a
l
xmdx
l
xmxf
m
m
l
ln n
nn
l
l
00
sincos2
sinsin)(1 1
0
ノイマン法
変数 f (x, t) を、空間方向についてフーリエ変換すると
ノイマン(von Neumann)の安定条件: 時間発展とともにあらゆる波数 k の振幅
Ak(t) が増幅しないこと
k
k ikxtAtxf )exp()(),(
ノイマン法
差分点(xj = jΔx, tn = nΔt)における f の値
fjn を
とおき、A = An+1 / An の大きさを求めて以下のように判別する
全ての k について安定なら、無条件安定
)exp( xikjAf nn
j
不安定1
安定 1
A
拡散方程式の安定性
拡散方程式の差分形式
についてフーリエ変換を適用し、安定性を調べる。波数 k の振幅の式は
211
1 2
x
fffa
t
ff n
j
n
j
n
j
n
j
n
j
n
nn
Ax
xka
t
AA2
1 1)cos(2
2sin
41 2
2
1 xk
x
ta
A
AA
n
n
2
cos1
2sin2
2
2
x
fa
t
f
拡散方程式の安定性
安定条件は |A| ≤ 1 であるから
結局、あらゆる波数 k に
ついて安定となる条件は
1
2sin
411 2
2
xk
x
ta
a
xt
2
2
a = 0.3
a = 0.5
a = 0.7
Δt = 1
(Δx)2/2a = 1.67
Δt = 1
(Δx)2/2a = 1.00
Δt = 1
(Δx)2/2a = 0.71