対流項を持つ偏微分方程式の数値解法2 風上差分の高精度化をはかる
fは何度でも微分できる関数とすると、
(1)、(2)式からf''(x)を消去し、f'(x)について解くと、
となる。
ここで、
とおくと、
となり、2次精度の差分による近似式を得ることができる。
これは、
だから、一般的に、
と後退差分を用いて求めた微分係数の近似値よりは精度がよい。
実際、f(x)=x²とすると、
となり、f(x)が1次関数、2次関数のとき、(3)式は正確に微分係数を求めることを確かめることができる。
前回、
の空間微分を
と風上差分(上流差分)で近似し、
という漸化式を得た。
ここで、
で、Cはクーラン数である。
(8)式は1次精度しか持っていないので、新たに得た2次の精度をもつ(左側)差分を用いて、
高精度化をはかることにする。
すると、(7)式は
したがって、
という漸化式を得ることができ、これを用いて逐次的に偏微分方程式(7)の数値解を求めることができる。
この方針にしたがって、c=0.5、Δt=Δx=1、つまり、クーラン数
について解いたものが次のグラフ。
比較参照のために、厳密解と1次精度の上流差分を用いて計算した結果は次の通り。
厳密解である垂直衝撃の前方では2次精度の風上差分の計算結果の方が厳密解に近いのだけれど、下流のx=4以降で負の値を持ち、その後、数値解が振動するなど、2次精度の上流差分は物理的にありえない数値解を求めてしまう。
また、c=0.5、Δx=Δt=1とし、クーラン数C=0.5とすると、時間の経過と共に、垂直衝撃波の下流での振動が激しくなる。1次精度の風上差分は
だから、風上差分の高精度にすると、安定に計算できるクーラン数の範囲が狭くなるようだ。