C&Fortran 演習で学ぶ数値計算

  • この本の
    内容
  • 目次
  • 関連情報

 本書は、情報学部および工学部の学生を対象とした数値計算の教科書としてだけではなく、その演習書としても利用できることを考慮して執筆した。各章は理論と演習半々で構成され、前半で数値計算アルゴリズムの理論を学び、後半でCとFortranを使った実装演習を行う。
 理論部分では高校数学を基本とし、図を多めに記載することで、数値計算アルゴリズムを数学的・直感的にわかりやすく解説している。また実際の実装と動作の観点からも、アルゴリズムの説明をしている。さらに、「より深く学ぶために」大学院相当以上の研究にも活用できる知識を提供している。
 演習部分では課題を豊富に掲載し、情報系学部で用いるC言語に加え、工学系学部で現在も用いられているFortranのコードを解答として配布する。CとFortran双方で28種類(合計56個)となる多数のプログラムが入手できるため、CとFortranの計算機言語としての観点からも数値計算アルゴリズムの理解を深めることができる。また、データサイエンス基礎の回帰に分類される、線形最小2乗法に関連する数値計算アルゴリズム演習も掲載しており、本書でデータサイエンスの基礎演習も行える。
 コードの主要な部分は本書で説明し、実際の動作可能なプログラムをパスワード付きで共立出版のホームページにて配布する。

第0章 準備
0.1 本書で扱うソースコード
0.2 本書で扱うプログラミング言語
 0.2.1 可変長配列
 0.2.2 浮動小数点の表記
 0.2.3 関数や変数の扱いと性能

第1章 数値計算の基礎
1.1 数値計算とは
1.2 計算機における数値表現
 1.2.1 整数の表現
 1.2.2 浮動小数点の表現
1.3 計算量とメモリ量
1.4 数値計算における誤差
 1.4.1 絶対誤差と相対誤差
 1.4.2 有効数字
 1.4.3 丸め誤差
 1.4.4 桁落ち
 1.4.5 情報落ち
 1.4.6 打ち切り誤差
 1.4.7 IEEE754で定めた丸めのルール
1.5 数値計算アルゴリズムの記載方法
1.6 より深く学ぶために:数値計算ライブラリ
 1.6.1 数値計算ライブラリの種類
 1.6.2 BLAS
 1.6.3 LAPACK
 1.6.4 その他のライブラリ
演習課題
プログラム解説

第2章 方程式の根
2.1 方程式の根
2.2 2分法
 2.2.1 中間値の定理
 2.2.2 2分法のアルゴリズム
2.3 Newton法
 2.3.1 Newton法のアルゴリズム
 2.3.2 Newton法の計算量
 2.3.3 Newton法が失敗する例
演習課題
プログラム解説

第3章 曲線の推定
3.1 曲線の推定とは
3.2 Lagrange補間
 3.2.1 Lagrange補間多項式
 3.2.2 Lagrange補間のアルゴリズム
 3.2.3 Lagrange補間の誤差
 3.2.4 Lagrange補間の欠点
3.3 スプライン補間
 3.3.1 スプライン補間の導出
 3.3.2 スプライン補間のアルゴリズム
 3.3.3 スプライン補間の精度
3.4 最小2乗法
 3.4.1 最小2乗法の導出
 3.4.2 線形最小2乗法の導出
 3.4.3 線形最小2乗法のアルゴリズム
演習課題
プログラム解説

第4章 数値積分法
4.1 数値積分とは
4.2 台形則
 4.2.1 台形則の導出
 4.2.2 台形則の誤差
 4.2.3 台形則の計算量の削減
 4.2.4 台形則のアルゴリズム
4.3 Simpson則
 4.3.1 Simpson則の導出
 4.3.2 Simpson則の誤差
 4.3.3 Simpson則と台形則の関係
 4.3.4 Simpson則のアルゴリズム
4.4 Romberg積分法
 4.4.1 Romberg積分法の導出
 4.4.2 Romberg積分法のアルゴリズム
演習課題
プログラム解説

第5章 連立一次方程式の直接解法
5.1 連立一次方程式の行列表記
5.2 Gauss-Jordan法
 5.2.1 Gauss-Jordan法の導出
 5.2.2 Gauss-Jordan法のアルゴリズム
5.3 Gauss消去法
 5.3.1 Gauss消去法の導出
 5.3.2 Gauss消去法のアルゴリズム
 5.3.3 Gauss消去法の計算量
 5.3.4 ピボッティング
5.4 LU分解法
 5.4.1 LU分解法とは
 5.4.2 LU分解の導出
 5.4.3 LU分解法のアルゴリズム
5.5 より深く学ぶために:アルゴリズムの変種
演習課題
プログラム解説

第6章 連立一次方程式の反復解法と固有値問題
6.1 定常反復解法
6.2 Jacobi法
 6.2.1 Jacobi法の導出
 6.2.2 Jacobi法のアルゴリズム
6.3 Gauss-Seidel法
 6.3.1 Gauss-Seidel法の導出
 6.3.2 Gauss-Seidel法のアルゴリズム
6.4 SOR法
 6.4.1 SOR法の導出
 6.4.2 SOR法のアルゴリズム
6.5 定常反復法の収束性
6.6 固有値問題とは
6.7 べき乗法
 6.7.1 べき乗法の導出
 6.7.2 べき乗法のアルゴリズム
6.8 QR法
 6.8.1 QR法の導出
 6.8.2 Givens回転によるQR分解
 6.8.3 Householder変換によるQR分解
 6.8.4 Gram-Schmidt直交化によるQR分解
 6.8.5 QR法の収束の加速
6.9 より深く学ぶために:解への収束の加速と固有値計算のアルゴリズム
 6.9.1 疎行列反復解法と前処理
 6.9.2 固有値問題のその他の解法
 6.9.3 一般化固有値問題
演習課題
プログラム解説

第7章 微分方程式
7.1 微分方程式とは
7.2 微分係数と差分近似
 7.2.1 1階差分商
 7.2.2 2階差分商と変種
7.3 差分方程式と各種解法
 7.3.1 常微分方程式の初期値問題
 7.3.2 Euler法
 7.3.3 Heun法
 7.3.4 Runge-Kutta法
7.4 連立1階微分方程式の解法
7.5 偏微分方程式
 7.5.1 偏微分方程式とは
 7.5.2 楕円偏微分方程式
7.6 陽解法と陰解法
 7.6.1 陽解法とは
 7.6.2 陰解法とは
7.7 より深く学ぶために:疎行列データ形式
 7.7.1 疎行列データ形式
 7.7.2 疎行列データ形式と疎行列?ベクトル積
演習課題
プログラム解説

より深く勉強するために
参考文献
索引

Shopping
ご注文

2,970円
(本体2,700円 + 税10%)

ネット書店で購入