内容紹介
C言語をつかった数値計算の方法を具体的なシミュレーションで学ぶ
C言語の文法は、ひと通り学んでいるものの自分でプログラミングするとなかなかできないという方を対象に、数値罫線とシミュレーションについて解説した書籍。物理シミュレーション、確率的シミュレーション、エージェントベースの数値シミュレーションなどを実例で示している。「Cによるソフトウェア開発の基礎データ構造とアルゴリズムの基礎から」の姉妹書。
このような方におすすめ
経営システム工学科・情報工学科の学生
SE・プログラマー
目次
主要目次
はじめに
第1章 C言語における数値計算
第2章 常微分方程式に基づく物理シミュレーション
第3章 偏微分方程式に基づく物理シミュレーション
第4章 セルオートマトンを使ったシミュレーション
第5章 乱数を使った確率的シミュレーション
第6章 エージェントベースのシミュレーション
付録
詳細目次
はじめに
第1章 C 言語における数値計算
1.1 C 言語におけるデータ型
1.1.1 C 言語に用意されている基本データ型
1.1.2 基本データ型では扱えないデータの処理
1.2 数値計算と誤差
1.2.1 数値計算における誤差
1.2.2 C プログラミングにおける誤差の実際
第2章 常微分方程式に基づく物理シミュレーション
2.1 質点の1 次元運動シミュレーション
2.1.1 自由落下のシミュレーション
2.1.2 着陸船のシミュレーション
2.2 ポテンシャルに基づく2 次元運動シミュレーション
2.2.1 ポテンシャルに基づく2 次元運動
2.2.2 2 次元運動シミュレーション
第3章 偏微分方程式に基づく物理シミュレーション
3.1 偏微分方程式の境界値問題
3.1.1 ラプラス方程式
3.1.2 ラプラス方程式の境界値問題
3.1.3 境界値問題の数値解法
3.1.4 ガウスの消去法による境界値問題の計算
3.1.5 逐次近似による境界値問題の計算
3.1.6 その他の二階偏微分方程式
3.2 ラプラス方程式による場のシミュレーション
3.2.1 ラプラス方程式の反復解法プログラム
3.2.2 より複雑な形状の領域の場合
第4章 セルオートマトンを使ったシミュレーション
4.1 セルオートマトンの原理
4.1.1 セルオートマトンとは
4.1.2 セルオートマトンの計算プログラム
4.2 ライフゲーム
4.2.1 ライフゲームとは
4.2.2 ライフゲームのプログラム
4.3 交通流シミュレーション
4.3.1 1 次元セルオートマトンによる交通流のシミュレーション
4.3.2 交通流シミュレーションのプログラム
第5章 乱数を使った確率的シミュレーション
5.1 擬似乱数
5.1.1 乱数と擬似乱数
5.1.2 乱数生成アルゴリズム
5.2 乱数と数値計算
5.2.1 数値積分と乱数
5.2.2 乱数と最適化
5.3 乱数を使ったシミュレーション
5.3.1 ランダムウォーク
5.3.2 ランダムウォークシミュレーション
第6章 エージェントベースのシミュレーション
6.1 エージェントとは
6.1.1 エージェントの考え方
6.1.2 C 言語によるエージェントシミュレーションの実現
6.1.3 マルチエージェントへの拡張
6.1.4 相互作用するマルチエージェント
6.2 マルチエージェントによる相互作用のシミュレーション
6.2.1 マルチエージェントによるシミュレーション
6.2.2 マルチエージェントシミュレーションプログラム
付録
付録A qe.c プログラムのソースリスト
付録B 4次のルンゲクッタ法の公式
付録C freefall.c プログラムの出力をgnuplot で描画する方法
付録D ラプラス方程式が隣接4 点の差分で近似できることの説明
付録E ガウスの消去法のプログラム
付録F gnuplot のsplot コマンドの利用方法
付録G セルオートマトンのgnuplot による結果表示
付録H グラフィカルな表示を行うライフゲームプログラムglife.c
付録I シンプソンの公式
付録J gsa0.c プログラム
付録K gsa1.c プログラム
付録L gsa2.c プログラム
付録M ginfection.c プログラム
参考文献
索引
続きを見る