授業科目

計算物理学
Computational Physics 

担当者

准教授 川東 健
後 水2

単位

2

到達目標

計算物理学Iでは学ばなかった確率論的な物理系や多数の自由度からなる複雑な物理系について学び、ごく簡単なモデルについてプログラム作成ができるようになることを目標とする。数理・物理学科のカリキュラムポリシーに従って、本講義は計算物理学Iの発展科目として現代物理学で実際に使われる乱数を応用した計算およびセル・オートマトンのような複雑系科学への応用を学ぶと同時に、コンピュータ・プログラミングをさらに学ぶ科目として位置づけられている。そのため、本講義では計算物理学IおよびプログラミングI・IIを履修しておくことが望ましい。

授業内容

計算物理学Iの応用・発展として、複雑系のシミュレーションをモデル化・プログラム実装を各自することによって、自然現象をどのようにコンピュータの中で再現するかを学習する。授業時間の3~4回分で、1テーマを行う。すなわち、各自プログラムをつくり、計算を実行し、それをレポートにまとめる。言語はJavaを使用する。基本的なプログラム作成の知識は持っている方がよいが、Java言語をマスターしている必要はない。

授業計画

各回の講義の内容は一応次のように予定しているが、時間の都合で若干前後する場合もある。予習・復習については、予習は各回の講義に記された必要な事項と前回のノートを再確認しておくこと(2時間程度)。復習は作成したプログラムのソースコードを読み、コンピューター上で動作を確認しておくこと(2時間程度)。
1.プログラム環境の整備【予習】Java言語開発環境Eclipseについてある程度調べておく
2.Java言語によるシミュレーションプログラムの作法【予習】計算物理学Iでは使わなかったオブジェクト指向プログラミングについて調べておく
3.乱数1:乱数の作成法【予習】乱数とは何かについて調べておく
4.乱数2:モンテカルロ積分法【予習】計算物理学Iで学んだ数値積分法を復習しておくことと関数のグラフの面積と定積分や関数の平均値との関係について調べておく
5.乱数を応用したプログラム作成演習【予習】3.と4.で学んだ手法をしっかり身につけておく
6.確率論的シミュレーション1:ランダムウォーク【予習】ランダムウォークとは何かある程度調べておく
7.確率論的シミュレーション2:ランダムウォークプログラム作成演習【予習】3.で学んだ乱数の知識をしっかり身につけておく
8.確率論的シミュレーション3:ランダムウォークプログラムによる数値実験【予習】7.で作ったプログラムをしっかり再確認しておく
9.決定論的シミュレーション1:セル・オートマトン【予習】セル・オートマトンとは何かある程度調べておく
10.決定論的シミュレーション2:セル・オートマトンプログラムの作法【予習】Eclipse上で既存のプログラムの再利用法をある程度調べておく
11.決定論的シミュレーション3:ライフゲーム【予習】10.で学んだライブラリCAFrameworkの使い方を再確認しておく
12.決定論的シミュレーション4:ライフゲームプログラム作成演習【予習】11.で学んだライフゲームシミュレーションの知識をしっかり身につけておく
13.決定論的シミュレーション5:浸透モデル【予習】森林火災CAモデルについてある程度調べておく
14.決定論的シミュレーション6:浸透モデルプログラム作成演習【予習】13.で学んだモデルの内容をしっかり再確認しておく

授業運営

講義とPCを使用した演習とを交互に行い、テーマ毎の課題についてプログラムを作成し、数値計算を行う。

評価方法

テーマ毎の課題についてのレポートで評価する。

オフィスアワー

火曜日3限、木曜日午後、金曜日午後、6-230(または6-121)にて対応する。
電子メール(ken@info.kanagawa-u.ac.jp)では随時対応する。

参考書

R.J.ゲイロード・P.R.ウェリン『MATHEMATICA複雑系のシミュレーション』[ シュプリンガーフェアラーク東京]
R.J.ゲイロード・西館数芽『Mathematica自然現象の計算モデル化』[ トッパン]

Copyright© 2017 Kanagawa University. All Rights Reserved.