索引 / 001 JA
Computational Physics(計算物理学) cover

物理学

物理学

Computational Physics(計算物理学)

Mark Newman

英語原題: Computational Physics

Pythonによる例題と演習を軸に構成された、自費出版の計算物理学の教科書です。積分や方程式の求解から微分方程式、フーリエ法、モンテカルロ法、時間依存シュレーディンガー方程式まで、物理学者に必要な数値計算法を教え、それぞれの手法を動くコードにする方法を示します。

前提知識: 微積分、力学と電磁気学の初歩、そして冒頭の章でPythonを学ぶ意欲があれば十分です。

難易度レベル
中級
学術レベル
学部
computational physicsnumerical methodspythonsimulation教科書

01 / 読書ガイド

読書ガイド

引用

Newman, M. (2012). Computational Physics. CreateSpace Independent Publishing Platform.

新しい版(第2版、2025年)が刊行されています。章番号や内容の一部が異なる場合があります。

章の要約

本書はマーク・ニューマンによるPythonベースの教科書で、CreateSpaceから刊行された。2012年付けの刷があり、図書館の記録には2013年付けの「改訂増補」版(約549ページ)もある。その後、約611ページの第2版が新たに登録されているため、以下の記述は第1版についてのものである。プリンストン大学図書館の記録は、本書を、Pythonの入門から始めて計算物理学の技法を段階的に進める本と要約しており、例は単純な力学の問題から、量子力学、電磁気学、統計力学の複雑な計算にまで及ぶ。出版社の説明は、すべての物理学者が知るべき技法として、差分法、数値積分、高速フーリエ変換を挙げ、本書を学部レベルの完全な入門書であり、上級の学生や研究者にも適していると述べている。図書館の記録は内容を以下の章、付録、索引として挙げており、章番号はこの順序に従う。

第1章:序論

図書館の記録に挙げられている冒頭の章。以下で取り上げる書評はこの章を述べていない。

第2章:物理学者のためのPythonプログラミング

Pythonの文法とプログラム構造の基礎を扱う章。『Computing in Science & Engineering』(2014年1/2月号)に書いたエリック・アヤーズによれば、プログラミング経験のないほとんどの学生を出発させるのに十分である。

第3章:グラフィックスと可視化

アヤーズは、Pythonの基礎の直後の章でPythonの作図機能が導入されるため、学生が他の授業で学んだことをすぐに活用できると述べている。

第4章:精度と速度

数値計算の精度と速度についての短い章。アヤーズは当初、この章が早い位置にあることを奇妙に思ったが、精度、正確さ、さまざまな方法の相対誤差についての議論が後の章を通じて繰り返し現れ、この章がそれらを結びつけていると報告している。

第5–6章:積分と微分/線形・非線形方程式の解法

積分と微分、続いて根の探索。アヤーズによれば、著者は通常まず最も単純な方法を説明し、そこからより強力な技法へ積み上げていき、多くの節をその問題を扱うNumPyやSciPyの関数に触れて終える。彼は、本書を通じて理解が深まった話題としてロンバーグ積分を挙げている。

第7–9章:フーリエ変換/常微分方程式/偏微分方程式

フーリエ法、常微分方程式、偏微分方程式という標準的な流れで、図書館の記録に挙げられており、アヤーズによれば通常の入門的な計算の話題に含まれる。

第10–11章:乱数過程とモンテカルロ法/学んだことを使う

モンテカルロ法は終わり近くに置かれ、続いて「Using what you have learned(学んだことを使う)」という題の最終章、そして付録がある。

主要概念

第1–4章:道具

  • Pythonプログラミング:第2章の主題。
  • グラフィックスと可視化:第3章。
  • 精度と速度:第4章。書評は、これを本書の残りを貫く糸として捉えている。

第5–9章:数値計算法

  • 積分と微分:第5章。数値積分を含む。
  • 線形・非線形方程式の解法:第6章。
  • フーリエ変換:第7章。
  • 微分方程式:常微分方程式(第8章)と偏微分方程式(第9章)。

第10–11章:確率的手法と実践

  • 乱数過程とモンテカルロ法:第10章。

批判的分析

長所

  • 明快で読みやすい説明。 アヤーズは本書を「驚くほど読みやすい」と呼び、説明は明快だと述べている。著者はほとんど常に、最も単純な方法の徹底した説明から始め、そこからより強力な技法へと築き上げる。
  • 最初からPython。 冒頭の章が、数値計算法に入る前に言語とその作図ツールを教えるため、プログラミング経験のない学生でも始められる。アヤーズは、1学期の計算物理の課程を教えており、この種のPythonベースの教科書としては、自分が知る限り最初に刊行されたものだと述べ、喜んで採用するとしている。
  • 統一的なテーマとしての精度。 同じ書評によれば、精度と速度についての早い章は、後の節がさまざまな方法の誤差を比べるための共通の基準点を与える。ほとんどすべての節がこの章に結びつく。
  • Pythonライブラリとのつながり。 多くの節が、その技法を実際に実行するNumPyやSciPyの関数を示して終わる。

短所

  • 書評者が指摘する不足。 アヤーズは2つの欠落を挙げた。曲線フィッティングの扱いは章末問題1問にとどまり、非線形フィッティングやSciPyのフィッティングツールへの言及がないこと、そしてファイルの読み書きを扱っていないことである。彼はどちらも授業で補うのは容易だと考えた。
  • 選択的な範囲。 目次には、曲線フィッティング、補間、データ解析を扱う独立した章がなく、第2版についての出版社の説明は、補間とデータ解析などで大幅に新しい内容が加わったと述べている。
  • 置き換えられた刷。 ここで述べたのは2012年/2013年の刷であり、第2版は約549ページに対して611ページで、内容が大幅に改訂・更新されている。そのため、読者は自分が手にしている版を確認すべきである。

コースにおける位置づけ

計算物理学の書単の中で、ニューマンの本はPythonベースの2冊の計算物理学の教科書の1つである。ランダウ、パエス、ボルデイアヌの『Computational Physics: Problem Solving with Python』は第4版でデータサイエンスの章(フーリエ解析、ウェーブレット、機械学習、量子コンピューティング)と多数の応用の章を加えているのに対し、ニューマンの目次はより短く、中核の方法に集中している。最初の学期の課程を求める学生はニューマンを、物理全般の応用を求める学生はランダウを検討するとよい。

キンダーとネルソンの『A Student's Guide to Python for Physical Modeling』は、プログラミング経験を前提としないPythonの短い実践的入門書で、ニューマンの第2–3章と並行して読める。プレスらの『Numerical Recipes』はC++の完全なルーチンを備えた数値計算法の参考書であり、ティッセンの『Computational Physics』は物性物理学と化学の方法を扱う大学院レベルの解説で、テイラーの『An Introduction to Error Analysis』は第4章の不確かさの考え方を補う。

本書の使い方

前提知識は微積分、入門的な力学、電磁気学である。Pythonは冒頭の章で教えられるため、プログラミング経験は前提とされない。

実践的な進め方:

  • 開始: 第2章と第3章を、小さなプログラムを書いて実行しながら読む。
  • 中核: 第4–9章を順に。後のどの方法でも第4章の誤差の議論を念頭に置く。
  • 後半の章: モンテカルロ法の第10章と、学んだことを応用する最終章。
  • 補足: 書評が勧めるように、ファイルの入出力とSciPyによる曲線フィッティングの短い扱いを補う。
  • 版の確認: 授業のシラバスの章番号に従う前に、手元の本が第1版か第2版かを確認する。