数値計算 理論

数値シミュレーション -数理モデル-

はじめに


こんにちは、Rafkaです。

今回から少しずつ、数値シミュレーションについての記事を書いていこうと思います。

この記事はシリーズにする予定で、最終的には私が研究している小脳モデルのシミュレーションができるようになる事が目標です。

ただし、シミュレーションができるようになる事を目標とするだけで、その結果の意味の解説を行ったり、応用例の提示は行いません。

もしそういった点についても学び、誰もやったことのない領域に踏み込みたいと思ったのであれば、そういった研究を行っている研究室を目指すことをオススメします。

正しい知識と自分のアイデアを組み合わせて、是非とも科学技術の発展に貢献してください。

 

数値シミュレーションとは


数値シミュレーションとは、自然現象や社会現象を数式でモデル(数理モデル)化し、その数式をコンピュータで解くことで対象の振る舞いを予測することです。

最も身近な数値シミュレーションの恩恵は、恐らく天気予報でしょう。天気予報には大気の変化の予測が必要不可欠であり、その為には大気という流体に関する以下のようなナビエ-ストークス方程式を解く必要があります。

$$\frac{\partial \boldsymbol{v}}{\partial t} + (\boldsymbol{v} \cdot \nabla) \boldsymbol{v} =\; – \frac{1}{\rho} \nabla p + \nu \nabla^2 \boldsymbol{v} + \boldsymbol{g}$$

この天気予報の例では、自然現象は大気の変化に、その数理モデルはナビエ-ストークス方程式にそれぞれ当てはまります。このナビエ-ストークス方程式は、微分方程式と呼ばれ、その中でも特に偏微分方程式と呼ばれるものになります。自然現象の多くがこの微分方程式で表されるので、数理モデルもそのほとんどが微分方程式で表されます。モデルとなる微分方程式が解析的に解くことができれば、シミュレーションの必要なく対象の現象を予測することができるようになりますが、微分方程式の多くは人の手によって解くことができません。先程のナビエ-ストークス方程式も一般解は求められておらず、解くと100万ドルがもらえるミレニアム懸賞問題となっています。

人の手によって解が得られにくいとなった時に、次のアプローチとなるのがコンピュータで数値的に解く方法になります。微分方程式の数値的解法の根本的なアイデアは非常に単純で、微分方程式を数値的に積分することです。積分を数値的に行うイメージは、高校で習う区分求積法がぴったりだと思います。この時に注意しなければいけないのは、区分求積法の図を思い出すと分かるように、微小量を固定することで算出した値は実際の値との間に誤差を生じさせていることです。従って微分方程式を数値的に解いた際も、その結果には誤差を含んでいます。数値計算において注意しなければならない誤差として、以下の三種類があります。

  • 丸め誤差:四捨五入等の端数処理を行うことで発生する誤差。
  • 打切り誤差:規定回数の反復を必要とする計算を途中で打ち切った場合に発生する誤差。
  • 情報落ち:浮動小数点で表される数の計算で、絶対値の大きい数と絶対値の小さい数の加減算を行うと、絶対値の小さい数が無視される現象。

ちなみに微分方程式を数値的に積分して解く際に発生する誤差は、本来は限りなく微小に取るべき数値を適当に計算可能な量として決めることで発生する誤差なので、打切り誤差に該当します。この打切り誤差を抑制するために、微分方程式の数値解法は様々なものが考案されてきました。次回の記事から1つずつ解説していこうと思います。

 

まとめ


今回の記事では、数値シミュレーションがどんなものかを書きました。

数値シミュレーションは、自然現象や社会現象をコンピュータで解析し、予測するために行われます。

そのやり方はざっくりと、

  1. 現象を微分方程式などで数理モデル化する。
  2. 数理モデルをコンピュータで数値的に解く。

です。

この記事シリーズで少しでも数値シミュレーションに興味を持ってくれる人が増えると良いなと思います。

 

次回 → 数値シミュレーション -微分方程式-