BOOK SEARCH
内容紹介
各モデルを課題→理論→手法→プログラミング→検討の順を追って丁寧に解説。〔内容〕数値計算の誤差と不確実さ/積分/データ解析/決定理論世界のランダム現象/モンテカルロ法/微分方程式と振動/量子力学の固有値問題/非調和振動/他
編集部から
目次
1. 序 論
1.1 計算科学とは
1.2 この教科書のねらい
1.3 付録とWeb上のプログラムの利用
2. 科学計算ソフトウェアの基礎
2.1 課題1:コンピューターを動かす
2.2 理論:コンピューター言語
2.3 プログラミング:概念
2.4 プログラミング:Fortran,area.f
2.5 プログラミング:C,area.c
2.6 プログラミング:シェル,エディター,プログラム
2.7 理論:プログラムのデザイン
2.8 手法:構造化プログラミング
2.9 手法:プログラミングのヒント
2.10 課題2:扱える数字の限界
2.11 理論:数の表現
2.12 手法:固定小数点と浮動小数点
2.13 プログラミング:オーバーフローとアンダーフロー,over.f(.c)
2.14 モデル:マシン精度
2.15 プログラミング:マシン精度の見極め,limit.f(.c)
2.16 課題3:複素数と逆関数
2.17 理論:複素数
2.18 プログラミング:複素数,complex.c(.f)
2.19 進んだ話題:量子論における複素エネルギー
2.20 課題4:級数の和をとる
2.21 手法:計算のテクニック
2.22 プログラミング:疑似コード
2.23 プログラミング:よいアルゴリズム,exp-good.f(.c)
2.24 プログラミング:悪いアルゴリズム,exp-bad.f(.c)
2.25 検 討
3. 数値計算の誤差と不確実さ
3.1 課題:誤差を減らす
3.2 理論:誤差の発生パターン
3.3 モデル:桁落ち
3.4 検討:桁落ちの実験
3.5 モデル:掛け算による丸め誤差
3.6 課題1:球ベッセル関数における誤差
3.7 手法:数値計算に適した漸化式
3.8 プログラミング:漸化式,bessel.f(.c)
3.9 検 討
3.10 課題2:アルゴリズムに起因する誤差
3.11 モデル:アルゴリズムに起因する誤差
3.12 手法:誤差の振舞いが既知のときの最適化
3.13 手法:経験的な誤差解析
3.14 検討:実験
4. 積 分
4.1 課題:スペクトル曲線の積分
4.2 モデル:求積,棒グラフの面積
4.3 手法:台形則
4.4 手法:シンプソン則
4.5 検討:積分誤差の見積もり
4.6 手法:ガウスの求積法
4.7 プログラミング:積分,integ.f(.c)
4.8 検討:経験的な誤差の見積もり
4.9 検討:実験
4.10 手法:ローンバーグの外挿法
5. データ解析
5.1課題:実験で得られたスペクトルの解析
5.2 理論:最適な曲線を決める
5.3 手法:ラグランジュの補間法
5.4 プログラミング:ラグランジュ補間,lagrange.r
5.5 検討:共鳴スペクトルの補間
5.6 検討と展開
5.7 手法:3次のスプライン
5.8 プログラミング:入手可能なスプライン補間のサブプログラム,spline.f
5.9 検討:スプライン補間の共鳴断面積への適用
5.10 課題:指数関数的に減衰するデータの補間
5.11 モデル:指数関数的な減衰
5.12 理論:確率論
5.13 手法:最小2乗法によるフィッテイング
5.14 理論:フィットのよさ
5.15 プログラミング:最小2乗法によるフィット,fit.f(.c)
5.16 検討:指数関数的な減衰曲線の解析
5.17 検討:熱流の解析
5.18 プログラミング:2次関数の係数を決める線形回帰
5.19 検討:2次関数のフィット
5.20 手法:非線形最小2乗法
5.21 検討:非線形最小2乗法によるフィット
6. 決定論的世界のランダム現象
6.1 課題:決定論的世界のランダム現象
6.2 理論:乱数列
6.3 手法:疑似乱数の発生
6.4 検討:乱数列
6.5 プログラミング:単純だが実用的ではないrandom.f(.c),
実用に耐えるcall.f(.c)
6.6 検討:ランダムで一様な分布
6.7 検討:ランダム性と一様性のテスト
6.8 課題:ランダムウォーク
6.9 モデル:ランダムウォータのシミュレーション
6.10 手法:ランダムウォークの数値計算
6.11 プログラミング:ランダムウォーク,walk.f(.c)
6.12 検討:歩幅がいつも「1」のランダムウォーク
7. モンテカルロ法の応用
7.1 課題:放射性崩壊
7.2 理論:自然崩壊
7.3 モデル:離散的な崩壊
7.4 モデル:連続的な崩壊
7.5 手法:放射性崩壊のシミュレーション
7.6 プログラミング:放射性崩壊,decay.f(.c)
7.7 検討:崩壊の可視化
7.8 課題:石を投げて面積を測る
7.9 理論:棄却法による積分
7.10 プログラミング:石投げ,pond.f(.c)
7.11 課題:多次元の積分
7.12 手法:平均値による積分
7.13 検討:多次元の積分における誤差
7.14 プログラミング:モンテカルロ法による10次元の積分,int_10d.f(.c)
7.15 課題:急速に変化する関数のMC積分*
7.16 手法:分散の減少*
7.17 手法:加重サンプリング*
7.18 プログラミング:一様でない乱数の選択*
7.19 手法:フォン・ノイマンの棄却法*
7.20 検 討*
8. 微 分
8.1 課題1:数値計算における極限操作
8.2 手法:数値計算の限界
8.3 検討:誤差解析
8.4 プログラミング:微分,diff.f(.c)
8.5 検討:誤差解析
8.6 課題2:2次導関数
8.7 理論:ニュートンの第2法則
8.8 手法:数値的な2次導関数
8.9 検討:数値的な2次導関数
9. 微分方程式と振動
9.1 課題:非調和振動子の強制振動
9.2 理論,物理:ニュートンの法則
9.3 モデル:非調和振動子
9.4 理論,数学:微分方程式の種類
9.5 理論,数学,物理:連立1階微分方程式による表現
9.6 プログラミング:振動子の運動方程式,連立1階微分方程式による表現
9.7 数値的:微分方程式を解くためのアルゴリズム
9.8 手法(数値的):オイラーのアルゴリズム
9.9 手法(数値的):2次のルンゲ-クッタ法
9.10 手法(数値的):4次のルンゲ-クッタ法
9.11 プログラミング:常微分方程式の数値解法,rk4.f(.c)
9.12 検討:rk4と調和振動子
9.13 検討:rk4と非調和振動子
9.14 展開:エネルギー保存
10. 量子力学の固有値問題:ゼロ点の探索と滑らかに接続する解
10.1 課題:量子力学的な粒子の束縛状態
10.2 理論:量子論的な波動
10.3 モデル:箱のなかの粒子
10.4 解:半古典論
10.5 手法:二分法によるゼロ点の探索
10.6 手法:微分方程式の解と固有値
10.7 プログラミング:微分方程式の固有値,numerov.c
lO.8 検討と展開
10.9 展開:方程式の根を求めるニュートンの方法
11. 非調和振動
11.1 課題1:調和振動子に非線形な摂動が加わった場合
11.2 理論:ニュートンの第2法則
11.3 プログラミング:常微分方程式の解,rk4f(c)
11.4 検討:振動振動数の振幅依存性
11.5 課題2:物理振子
11.6 理論:回転運動についてのニュートンの第2法則
ll.7 手法(解析的):楕円積分
11.8 プログラミング:rk4による振子運動の解析
11.9 展開:共鳴とうなり
11.10 展開:位相空間での描画
11.11 展開:減衰振動
12. 非線形振動のフーリエ解析
12.1 課題1:非線形振動の高調波成分
12.2 理論:フーリエ解析
12.3 検討:フーリエ級数の和
12.4 理論:フーリエ変換
12.5 手法:離散的フーリエ変換
12.6 方法:フーリエ級数を求めるためのDFT
12.7 プログラミング:DFT,fourier.f(.c),invfour.c
12.8 検討:簡単な解析的関数を使った入力
12.9 検討:非線形性の強い振動子
12.10 検討:非線形摂動を受けた振動子
12.11 展開:非周期的な関数のDFT
12.12 検討:雑音を含む信号の処理
12.13 モデル:自己相関関数
12.14 検討:DFTと自己相関関数
12.15 課題2:データ解析のモデル依存性*
12.16 手法:モデルによらないデータ解析
12.17 検 討
13. 非線形系の不思議なダイナミクス
13.1 課題:虫の個体数の変化
13.2 理論:非線形ダイナミクス
13.3 モデル:非線形な成長,ロジスティック写像
13.4 理論:非線形写像の特徴
13.5 プログラミングと検討:ロジスティック写像
13.6 検討:2分岐ダイアグラム
13.7 プログラミング:2分岐ダイアグラム,bugs.f(.c)
13.8 展開:ロジスティック写像を使った乱数
13.9 展開:ファイゲンバウム定数
13.10 展開:他の写像
14. 微分方程式とカオス:位相空間での表現
14.1 課題:カオス的な振子
14.2 理論とモデル:カオス的な振子
14.3 理論:リミットサイクルと同期現象
14.4 プログラミング1:常微分方程式の解,rk4.f(.C)
14.5 検討と可視化:位相軌道
14.6 プログラミング2:位相空間での自由振動
14.7 理論:位相空間でのカオス的運動とランダムな運動
14.8 プログラミング3:カオス的な振子
14.9 検討:位相空間でのカオス的な構造
14.10 検討:カオス的な振子のフーリエ解析
14.11 展開:軸が振動する振子
14.12 さらに進んだ展開
15. 行列の数値計算とサブルーチン・ライブラリー
15.1 課題1:連立1次方程式
15.2 課題1(定式化):1次方程式から行列方程式へ
15.3 課題2:簡単だが解けない静力学
15.4 課題2:理論,静力学
15.5 課題2(定式化):連立非線形方程式
15.6 理論:行列問題
15.7 方法:行列計算
15.8 プログラミング:科学技術計算ライブラリーの利用,WWW
15.9 プログラミング:利用可能なライブラリー
15.10 拡張:Netlibライブラリー
15.11 練習:行列演算ルーチンのテスト
15.12 プログラミング:LAPACK概要
15.13 プログラミング:Netlib概要
15.14 プログラミング:SLATEC概要
16. 束縛状態,運動量空間での表現
16.1 課題:非局所ポテンシャルによる束縛状態
16.2 理論:k-空間でのシュレーディンガー方程式
16.3 手法:積分から1次方程式へ
16.4 モデル:δ-殻ポテンシャル
16.5 プログラミング:束縛エネルギー,bound.c(.f)
16.6 展開:波動関数
17. 量子力学的散乱:積分方程式の解法*
17.1 課題:k-空間での量子力学的散乱
17.2 理論:リップマン-シュウィンガ一方程式
17.3 理論(数学):特異積分
17.4 手法:積分から行列方程式へ
17.5 プログラミング:δ-殻ポテンシャル,scatt.f
17.6 展開:散乱波動関数
18. 付 録
18.1 FortranとCの対比
18.2 プログラム名一覧
18.3 プログラムのソースコード
19. 文 献
20. 参考文献
21. 索 引