さて、前章で、風上差分法や中央差分法では初期波形を正確に伝えられないということが分かりましたが、この章ではその理由を明らかにしたいと思います。
問題5-1.
1次元移流方程式はいったん忘れて、拡散の方程式を解くことにします。
拡散の方程式は、次の通りです。
 |
・・・(**) |
この式を風上差分法で微分します。
 |
・・・(5.1) |
| . |
| ・・・(5.2) |
これらを(**)式に代入し、まとめると
 |
・・・(5.3) |
となります。
波形の初期形状は、前章の三角波を計算範囲の中央へ平行移動したものを使います。
解答例
ソースコードは省略
[ イメージ(クリックすると大きくなります。) ]

[ 動-5.1 ]
解説
方程式を差分化した式を見れば分かると思いますが、計算点の数が、若干変わるので注意してください。 結果のアニメーションは、初期波形が減衰していることがよく分かります。
問題5-2.
では、再び1次元移流方程式に戻ります。
前章では、移流速度uが正の場合と、負の場合で分けて計算をしましたが、ここでは、移流速度uの正負に関わらず使えるようにします。
問題にしている1次元移流方程式は、
 |
・・・(5.4) |
でした。この式において、uの正負に左右されて変化する左辺第2項について考えます。
左辺第2項は、
 |
・・・(5.5) |
でした。
ここで、
 |
・・・(5.6) |
となることを利用すると、
 |
・・・(5.7) |
となります。「よくまぁ、こんなことを思いつく人がいたもんだ!」と初めて見たときは、感心したものでした。それはいいとして、この関係をまとめると(各自計算のこと)、
 |
・・・(5.8) |
となります。
この式をじ〜っと見ていると、どこかで見たような見てないような形をしています。
よく見れば、上式の右辺には、前章でやった中央差分と、すぐ上でやった拡散で出てきたヤツが入ってるじゃないですか。
そう、つまり風上差分には、実は拡散項がちゃっかり含まれていたのです。だから初期波形が時間と共に減衰してしまっていたんですね。
[ ここからが問題 ]
さ、理由がハッキリしたところで、風上差分法・移流速度がプラスでもマイナスでもOKヴァージョンのプログラムを組んでください。(解答例は付けませんが...)
ちなみに、「じゃあ、なんで風上差分は拡散項を含んでしまうんだ?!」ってのが気になりますね。(え?気にならない??ダメです。気にして下さい。)その理由は次の章で考えることにします。 |