読書メモ
・「Octaveによるシミュレーション入門」
(赤間 世紀 :著、I・O BOOKS \1,900) : 2009.05.09
内容と感想:
「Octave」はオープンソースの数値計算ツール。
同様のツールとしては「MATLAB」が有名だが、OctaveはそのMATLABを意識して開発されている。
Octaveはフリーであるため試用するにもハードルが低い。
本書はそのOctaveを使ったシミュレーションをテーマに書かれている。
付録のCD-ROMには「GNU Octave 3.1.50」とサンプル・プログラムも同梱されている。
インストール方法や基本的な操作の解説もある。
数式を元に2次元や3次元のグラフを描画させてみたり、C言語のような高級言語の感覚でプログラミングすることで
より複雑な計算をさせることも出来る。
シミュレーションの例題として、レジの待ち時間(待ち行列)や、人口予測(マルサス方程式)、バネ振動(運動方程式)、
ネズミとネコの関係を生態システムとしてみたもの(ロトカ・ボルテラ方程式)、流体の対流現象(ローレンツ・モデル)などを
取り上げている。微分方程式のような数式をコンピュータで計算させるために、ルンゲ・クッタ法といった近似解を求める数値的解法を
紹介し、それを実現するプログラムや計算結果などを具体的に示している。
とにかく実際に動かしてみて感触を味わってみて欲しい。
○ポイント
・シミュレーション:実際には実行不能な現象を評価できる。システムの性能や機能を予測する。
実際の実行には莫大な費用が必要なシステムの実験を模擬的に行なえる。
・線形静的システムのモデルは線形方程式
・線形動的システムのモデルは微分方程式
・グラフィックスには「GNUPLOT」を利用。2次元や3次元のグラフを描画
・構造化プログラミングが可能
・モンテカルロ法の応用:乱数を用いて図形の面積や関数の積分値を求める
・ブラウン運動:理論はアインシュタインが提案。厳密な数学的モデルは「ウィーナー過程」。極小の「酔歩問題」として解釈される。
・待ち行列問題:効率的に待ち行列を少なくする。ポアソン分布を利用。まれにしか起こらない事象が起こる確率を表わす。
・ポアソン乱数:ポアソン分布に基づく乱数。待ち行列や在庫管理のシミュレーションに使われる
・微分方程式をコンピュータで解く方法として様々な「数値的解法」が研究されている。オイラー法、修正オイラー法、ルンゲ・クッタ法(最も高精度)。
・オイラー法:微分方程式を差分方程式に変換して計算する
・常微分方程式:変数が一つの微分方程式
・偏微分方程式:変数が2つ以上の微分方程式
・マルサスの法則:年とともに人口が指数関数的に増加。人口爆発。
・運動方程式:2階微分方程式。物理現象のシミュレーションの基礎。数値的解法として2つの1階微分方程式に分け、連立させて解く方法がある。
・バタフライ効果:初期条件のわずかな差によって現象の結果が変わり、振る舞いが複雑になる
・リアプノフ指数:0より大きい場合にカオス性を表わす。予測不能性の度合いを示す
・生態システム:自然界の生物が各種制約のもとで相互関係を保持している
・偏微分方程式の数値解法:連立微分方程式に変形
-目次-
第1章 序論
第2章 Octave入門
第3章 モンテカルロ法
第4章 数式シミュレーション
第5章 カオス
|