物理モデルの差分法による離散化




話を単純にするために右図のように2次元化します。
領域Ωは、ある物質を表していて、これはガラスでもコンクリートでも何でも良いのですが、それを一定の温度で冷やし(または温め)、熱平衡状態になったときの物質の温度分布はどうなるか、ということを考えます。

まずは数値解析の入門編ということで、差分法の一番簡単な手法で偏微分方程式の近似をしていきます。
微分方程式は

div(-k・grad(U)) = f

という拡散方程式で、divはダイバージェンス、gradはグラディエントと発音するようです。それぞれの意味などは、k や f などの定義とともに下に記しておきます。

k : 拡散係数(熱伝導係数)
f : 発生量(発熱量)
U : 未知数(温度)

grad(U) = (∂U/∂x,∂U/∂y)T.

V = (Vx,Vy)T を2次元のベクトルとすると
div(V) = ∂Vx/∂x + ∂Vy/∂y .

3次元の場合も同様です。

さて、∂は偏微分を表しているわけで、これをコンピュータが計算してくれれば万事うまく行くのですが、コンピュータは有限のものしか扱えないので、どうしても近似が必要になってきます。では、次の図へ。



図のように領域Ωをいくつかの格子に分割します。
そして、左下の格子点から番号をふっていきます。一番左の列と下の行の温度は今回は分かっているものとして×印をふっておきます。これは全部未知数にしても構いませんが一応、話を面白くするためです(領域内と外の境界の条件を「境界条件」と言います)。

ここで話を振り返ってみると、目的はこの領域の温度分布を調べることでした。つまり、右図の①〜⑨までの温度を求めれば領域の大体の温度分布が把握できる、ということになります。当然、もっと分割数を増やせば、詳細でより精確な結果が得られるわけですが、計算回数もその分多くなるわけです。したがって、コンピュータの性能も考えてバランス良く分割数をとることも大事です。誤差の問題もあります。と、この話はまた後ほど詳しく書く機会があるでしょう。


次回は、先ほどの微分方程式の差分化について書こうと思います。




Go back