next up previous
Next: 6 線形安定性解析 Up: 計算天文学 II 第3回 Previous: 4 C++ でのプログラム

5 安定性

ここまでで、拡散方程式に対するもっとも簡単な差分近似である、空間微分

\begin{displaymath}
\frac{\partial^2 u}{\partial x^2} \sim
\frac{u_{i+1,j}-2u_{i,j}+u_{i-1,j}}{\Delta x^2}
\end{displaymath} (6)

と、時間微分
\begin{displaymath}
\frac{\partial u}{\partial t} = \frac{u_{i,j+1}-u_{i,j}}{\Delta t}
\end{displaymath} (7)

の組合せをプログラムにしてみた。これを動かしてみた人は気がついたと思う が、この方法は $\Delta t /\Delta x^2 > 0.5$ になると「うまく動かない」。

具体的には、拡散方程式なので本来は次第に滑らかになっていくべきなのに、 どんどんガタガタになってしまう。しかも、これは $\Delta t /\Delta x^2 > 0.5$であれば $\Delta x $$\Delta t $ をどんなに小さくしても起こる。

まず、なぜそういう振動が起きるのかを考え、それから振動を起こさない方法 があるのかどうかを議論していこう。



Jun Makino
平成17年10月23日