時間発展問題の数値計算: 序論

自然現象や社会現象を考える上で、 ある量 Z の時間発展に注目し、その未来の値を、過去や現在の値をもとに 予測するという問題が多く存在する。

対象を記述する式が、状態量の時間微分(変化率、rate)を含んでいて、 ある時刻(t = 0としよう)での状態量(初期値という)を与えられたとき、 それより未来の状態量が順に求められるような問題である。

そういうときによく使われる考え方として、まず Z のある短い時間 Δ tに 対する変化 Δ Z、あるいは、Δ tの絶対値を小さくしていった極限での、 時間あたりの Z の変化率 d Z / d t をまず求め、 これと現在の値から、少し時間のたったときの Z の値を求める、というようにして 逐次に進めていくという、時間発展問題としての考え方がある。 Z の時間発展の法則を数式で表わすとき、d Z / d t の ような時間微分が含まれていれば、これは微分方程式となるし、 有限の(無限小でない) Δ t に対する Δ Z / Δ t のようなもの (差分という)が含まれていれば、差分方程式というものになる。 以下の例は、微分方程式で表わせるものを主に扱う。

実際、毎日の天気予報の基礎として気象庁で使われている数値予報モデルは、 大気の従う運動方程式や質量保存、エネルギー保存の式を連立させたものを、 このように時間発展型で数値計算するものである。

微分方程式になる問題の解きかたは、大きく分けて2種類ある。

解析解のある問題でも、結果は直観的にわからない関数になることが多いので、 結果の数値を具体的に知るためには計算機が使われる。 しかし、計算機の役割りが決定的に重要になるのは、 人間の能力で解析解を知ることができず、 数値解を求めなければならない場合である。

数値解を求める計算方法の検証は、解析解のある問題にあてはめて みることによって行なわれる。 そこでこの授業では、解析解のある簡単な微分方程式の問題に対して、 まず解析解を計算し、次に数値解を求めるいくつかの方法を 実際にためしてみることにしたい。 具体的には、

を扱う。 余裕があれば、これらの問題を多少変形して、 数値解でなければ解けない応用問題に拡張したい。

実習では、解析解と数値解のそれぞれをPascal, FortranまたはCで計算し、 解を gnuplot でプロットする。


ページ公開 2002年 (微修正 2015-06-13)
増田 耕一 (MASUDA Kooiti)

[目次へ]