Python で計算論モデリング
計算論モデリング?
「計算論モデリング」とは、計算機でのシミュレーションを前提に様々な自然現象や社会現象をモデル化する(広い意味での)「数理モデル」のことです。
これまでの授業科目で、微分方程式や確率モデルなどで物理現象などを表現した(狭い意味での)「数理モデル」を扱ってきたと思います。しかし、一般の数理モデルでは数学的に記述できても数学解析的に解けないことが多々あります。そのような場合でも、数理モデルを計算機でシミュレートすることで、現象を再現して振舞いを調べることができます。さらに、複雑な現象の中には数式で表現することが難しいものもあります。そのようなケースでも、アルゴリズム(プログラム)としてモデル化して計算機でシミュレートすることで現象を調べることができます。
ざっくり言うと、「計算論モデリング」は「数理モデル」+「プログラミング」+「計算機シミュレーション」といったイメージです。
どうして Python?
一般に、計算機上では 0.1 のような実数や 1/3 のような有理数を正確に扱うことができず、必ず数値誤差を含みます。Python は豊富な関数ライブラリ(モジュール)を持つプログラミング言語で、標準ライブラリのみでこのような有限実数や有理数を正確に扱うことができます。また、結果のグラフ化や数式処理なども簡単に実現可能です。実行速度的に大規模なシミュレーションなどには向きませんが、インタプリタ型言語として手軽に扱うことが可能なためここでは Python を利用します。
実施方法は?
初回は Python 上での数値計算や誤差、数式処理など、計算モデリングに必要な基本事項を学びます。Google Colaboratory などのオンライン環境、または、各自のPC上に Python の実行環境を構築してもらいます。2回目以降は、Python での演習を含んだ輪講形式で計算論モデリングに関するトピックを学習します。「Python コンピュータシミュレーション入門、橋本洋志+牧野浩二著、オーム社」をネタ本として、各々興味のあるトピックを予習して各自30分程度で内容説明してもらいます。各トピックには例えば以下のようなものがあります。
SIRモデル(感染症モデル)・ロジスティック方程式(カオス)・文章単語の共起ネットワーク(構文解析とグラフ理論)・ランダムウォーク、モンテカルロ法(確率モデル)・ベイズ統計など
お問い合わせ
質問等があれば Teams チャットにてさのまで。