数値計算のための Fortran90/95 プログラミング入門 (第 2 版)
スウチケイサンノタメノフォートランキュウジュウキュウジュウゴプログラミングニュウモンダイニハン
- 著者:
- 牛島 省(ウシジマ サトル)
- 出版社:
- 森北出版
- 出版日:
- 2020年01月28日頃
- ISBN:
- 9784627847224
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
◆Fortran 入門の定番書◆
基本から応用まで 1 冊で無理なく独習できる, 好評の入門書の改訂版です.初心者でも簡単にプログラミングができるように初歩からやさしく解説し, 注意すべきポイントを随所でまとめています.
反復計算や配列といった基本的なプログラムから始めて, とくにつまづきやすい, 副プログラムの使い方も丁寧に説明しています.さらに, ラプラス方程式や拡散方程式といった科学技術計算で頻出の方程式を題材に, 数値計算のプログラムをどのように作成すればよいのか, 基本的な考え方からわかりやすく説明します.
第 2 版では, OpenMP による並列計算の初歩が加筆されました.スパコンだけでなく個人用の PC でもマルチコア CPU が搭載されるのが当たり前になったいま, 本書を活用すればより実践的な数値計算へ踏み出すことができます.
【サポートページのご案内】
Fortran コンパイラ gfortran とグラフ描画ソフト gnuplot のインストール方法を紹介しています.サポートページは森北出版の Web サイトにてご案内しています.
第 1 章 反復演算と基本プログラミング
第 2 章 配列を用いるプログラミング
第 3 章 モジュール副プログラム
第 4 章 外部副プログラム
第 5 章 副プログラムの新機能
第 6 章 数値計算への応用
第 7 章 OpenMP による並列計算
付録 1 Fortran 90/95 に関する補足
付録 2 組み込み手続き
付録 3 グラフ描画ソフト gnuplot の簡単な使い方
付録 4 コンパイルの方法に関する補足
技書の森解説
『数値計算のための Fortran90/95 プログラミング入門 (第 2 版)』は、Fortran 90/95 の書き方を、科学技術計算の題材とともに初歩から独習するための入門書です。著者は牛島 省 氏で、刊行時の著者紹介では京都大学教授とされています。版元は森北出版、書店発売日は 2020 年 1 月 28 日です。旧版 (ISBN 9784627847217) の改訂版にあたり、版元の案内では、第 2 版で OpenMP による並列計算の初歩が加筆されました。紹介文は、初心者でも簡単にプログラミングができるように初歩からやさしく解説し、注意すべきポイントを随所でまとめた本と位置づけています。
全 7 章の構成、反復演算から OpenMP の並列計算まで
本文は全 7 章と付録 4 本です。第 1 章「反復演算と基本プログラミング」と第 2 章「配列を用いるプログラミング」で、繰り返しの計算と配列を使う基本のプログラムを組みます。第 3 章「モジュール副プログラム」、第 4 章「外部副プログラム」、第 5 章「副プログラムの新機能」は、副プログラムを扱います。版元の紹介文も、とくにつまずきやすい副プログラムの使い方を丁寧に説明すると案内しています。第 6 章「数値計算への応用」では、ラプラス方程式や拡散方程式のように科学技術計算で頻出の方程式を題材に、数値計算のプログラムをどう作ればよいかを基本的な考え方から説明します。第 2 版で加筆された並列計算の初歩は、第 7 章「OpenMP による並列計算」として章が立てられています。付録は「Fortran 90/95 に関する補足」「組み込み手続き」「グラフ描画ソフト gnuplot の簡単な使い方」「コンパイルの方法に関する補足」の 4 本です。gfortran と gnuplot のインストール方法は、森北出版のサポートページで案内されています。
配列と副プログラムと偏微分方程式の技術背景
数値計算のプログラムで最初に問題になるのは、格子の上に並んだ値をどう持つかです。温度や濃度を空間の点ごとに記録すると、計算の対象はそのまま 2 次元や 3 次元の 配列 になります。Fortran は配列の添字の範囲を宣言で決めて扱う書き方が素直で、行列やベクトルの計算を式に近い形で書けることが、科学技術計算で長く使われてきた理由の一つです。次の要点が副プログラムです。計算が大きくなると、境界条件の設定、1 ステップの更新、結果の出力を別々の手続きに分け、引数で配列を受け渡す必要が出てきます。ここで配列の大きさの渡し方や変数の有効範囲を取り違えると、エラーにならないまま誤った値を計算し続けることがあります。ラプラス方程式や拡散方程式は、一般には領域を格子に区切って差分で近似し、反復や時間の進行に沿って値を更新していくことで解きます。こうした計算は格子の点の数に比例して重くなるため、書いたプログラムを コンパイラー で機械語に変換して高速に動かすことが前提になります。
マルチコアを使う OpenMP の入り口
OpenMP は、ループの直前などに指示文を書き加えることで、1 台の計算機の中の複数のコアに処理を分けて受け持たせる仕組みです。プログラムの構造を大きく書き換えずに並列化できる一方、複数の スレッド が同じ変数を同時に書き換えると結果が実行のたびに変わるため、変数を共有するか各スレッドに持たせるかを判断する力が要ります。版元は、スパコンだけでなく個人用の PC でもマルチコア CPU が当たり前になったことを第 2 版の加筆の背景として挙げています。
対象の規格 Fortran 90/95 と、本書の軸
書名が示す対象は Fortran 90/95 で、紹介文が示す軸は数値計算のプログラムの作り方です。本書は反復と配列の基本から始め、第 6 章で数値計算への応用、第 7 章で OpenMP による並列計算を扱います。
言及した記事 (1 件)
この本に興味がある方におすすめ
関連する本
関連記事
関連用語
コンピューターサイエンス
計算と情報処理を体系的に扱う学問。あらゆる IT 技術の理論的な土台
競技プログラミング
与えられた問題を制限時間内に正確 / 高速に解くプログラミング競技
依存グラフとは - モジュール間の依存関係を可視化する方法
依存グラフはパッケージやモジュール間の依存関係を有向グラフで表現する手法。循環依存の検出 / ビルド順序の決定 / 影響範囲分析での活用法を解説
プログラミング
コンピューターに実行させる手順をプログラミング言語で記述し、動作を作り出す行為
グラフアルゴリズム
ノードとエッジで構成されるグラフ構造に対する探索 / 最短経路 / 接続性の分析アルゴリズム
グラフデータベース
ノード (エンティティ) とエッジ (関係) でデータを表現し、複雑な関係性のクエリに特化したデータベース