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












お問い合わせ
質問等があれば Teams チャットにてさのまで。