1. はじめに

このページは計算物理学の解説ページです。 物理学科の学生にとって身近な方程式を取り上げ、それを実際にpythonを使って数値的に解くことで、実践的な力を身につけることを目指します。 以下の特徴があります。

  • 例題を取り上げ、サンプルコードを追いながら解説します。

  • サンプルコードでは数値計算ライブラリを積極的に使います。

  • 数値計算法の詳細については解説しません。

伝統的な計算アルゴリズムに関しては、たくさんの書籍やwebページで解説されているので、改めて解説を書くことにそれほど意義はありません。 むしろ、良い文献やwebページを(主観的な観点から)紹介することの方が重要であると考えます。

一方で、プログラミング言語を取り巻く環境が昔と比べて大きく変わってきており、その変化に計算物理学の講義が対応しきれていない現状があります。 計算物理の伝統的な講義では、まずアルゴリズムを解説し、その中から実装が簡単なものについてC/C++やFortranを使って解いてみるという流れです。 しかし、今はライブラリが充実しているので、基本的なアルゴリズムを自分で実装する必要はありません。 むしろ、自分で実装してはいけない、と言っても言い過ぎでないくらいです。 ライブラリを積極的に使ってコーディングにかける時間を減らすことで、浮いた時間を結果の解析やより難しい問題に取り組む時間に充てるべきです。

ただ、ライブラリを使って解けるからといって計算アルゴリズムを知らなくてよいというわけではありません。 ライブラリを正しく使うためにはアルゴリズムについての知識が必要です。 そこでこの解説では、アルゴリズムを使うために必要な知識を解説します(実装するための知識とは別です)。

例題の解説では、私が重要と思っている以下の2点を繰り返し強調しています:

  • "pythonic"なコーディングに慣れる

  • 公式ドキュメントを調べる習慣をつける

詳細については pythonに関する基礎事項 を参照してください。 例題を読み進めていくうちに計算物理の知識を深めると同時に、この2点が自然に身に付くことを期待しています。