担当教員
弓削達郎(ゆげたつろう)
はじめに:計算機(コンピュータ)は何ができるか?
とある計算機科学とプログラミングの入門書の冒頭に以下のようにある:
コンピュータは2つのこと(だけ)をする. つまり, 計算をすることと, 計算結果を覚えておくこと(だけ)だ. ただ, コンピュータはこの2つのことを非常に上手にできる.(J. V. Guttag 著, 久保幹雄 監訳,「Python言語によるプログラミングイントロダクション」(近代科学社, 2014年))
計算物理学でも、これら2つのこと(だけ)を様々に組み合わせてコンピュータによる計算を行う。コンピュータはこれら2つを非常に上手にやってくれるので、人の手のみでは難しい計算を行うことが可能になる。このとき人がやることは、何をどのように組み合わせるかを考えることと、それを計算機に指示することである。この「何をどのように組み合わせるか」の指示を書いた手順書(のようなもの)がプログラムであり、それを計算機に理解できるように書くのがプログラミングである。そして、計算機が理解できる言葉がプログラミング言語である。
現在、プログラミング言語には200以上の種類がある。この講義では、Pythonを用いる。言語仕様の違いなどによって各言語の得意分野も異なる。例えば、Fortranはハイパフォーマンスが必要とされる計算物理学の分野でよく使われ、Pythonはデータサイエンスの分野などでよく使われる。とはいえ、共通する概念も多いので、一つの言語をある程度習得できれば他の言語を習得するのはそんなに難しくはないと思う。
講義の目的
コンピュータ(計算機)を用いて物理現象を解析する方法を習得すること。
古典力学におけるニュートンの運動方程式・量子力学におけるシュレディンガー方程式・電磁気学におけるマクスウェル方程式・統計力学におけるカノニカルアンサンブルなど物理学の基本法則は数式で表現されます。そして、これらの基本法則から様々な物理現象を記述することができます。しかしその際に、積分を行う・微分方程式を解く・代数方程式を解く・固有値を求めるなどの計算が必要となります。これらを手計算のみで実行することが困難な場合、コンピュータ(計算機)の助けを借りて計算を行うことになります。
実際には、手計算のみで問題が解ける場合はまれで、多くの場合に計算機の助けを借りた計算が必要となります。このことに加えて計算機の性能が飛躍的に向上したことにより、計算機を用いた解析は物理学の研究において重要な地位を占めるようになっています。このため、計算機を用いた物理学の研究を「計算物理学」と呼んで、「理論物理学」・「実験物理学」に並ぶものと見ることもあります。また、計算機を用いた現象の予測は「計算機実験」と呼ばれることもあります。
この講義では、このような現代の物理学における一つの素養とも言える「計算物理学」の基本を学びます。具体的には、計算物理学の代表的な手法である分子動力学法とモンテカルロ法の初歩、および得られた計算結果(数値データ)を解析し可視化する方法について、実際にプログラムを組みながら学びます。
講義を行う場所
共通教育L棟 計算機実習室1
使用言語
この講義で主に使用するプログラミング言語はPythonです(後期前半に開講の計算物理学入門に準ずる)。
受講要件
計算物理学入門の講義を受講済みであることが望ましいです。
成績評価
講義中に出す問題(練習と課題)への取り組みで評価します。
練習
練習問題は毎回の講義で出題します。
出された練習問題はその講義時間の終わりまでに完了させてください。完了したら挙手し、その場でプログラムの実行を行って報告してください。
講義時間の終わりまでに完了できなかった場合、次回の講義前か講義冒頭で報告してください。
課題
課題は二つあります。
分子動力学法とモンテカルロ法を用いる課題をそれぞれ1つずつ予定しています。
一つ目の課題は第4回目の講義で出題する予定です(講義の進行具合により少し前後するかもしれません)。
二つ目の課題は第7回目(最終回)の講義で出題します。
課題はレポートで評価します。
レポートの提出締切は課題を発表してから 2, 3週間くらいです(はっきりとした締切は課題を出題するときに知らせます)。