第9回レポート(7/3出題)

初心者向け

今回のテーマは「条件が満たされている間繰り返し」という構文。
  1. 例によって 初心者のための今週のプログラムの 第九回分を読んで、プログラムを入力し、実行してみる。
    (1)実行結果(2)気づいたこと(3)難しかった点・疑問点(4)感想
    等をレポートする。
  2. 授業で触れたように 実数固有値を持つ行列の絶対値最大の固有値に属する固有ベクトルを 求める方法としてpower methodがある。 これは、任意の初期ベクトルに行列を繰り返しかけていくと、 ベクトルが固有ベクトルに収束してゆくというものである。 つまり、行列Aと適当なベクトルvに対し

    ANv
    がNの大きいところで固有ベクトルに収束する。 これを行なう関数(あるいはサブルーチン)を作り、テストデータ で計算せよ。 なお、固有値が実数でなくてはならないので、テストデータは実対称行列に しておくと安心。 なお、収束判定と発散防止のために、ベクトルはノルムを毎回適当に規格化する 必要がある(収束しても、行列をかけるたびに固有値倍されるから)。

プログラミング経験者向け(すべて、プログラムと実行結果を提出)

  1. 1次元格子上の酔歩のシミュレーションを行なう。多数のwalkerを同じ場所から同時にスタートさせ、その分布の時間発展を調べよ。 遷移確率や境界条件は適当にとってよい。 なお、乱数はシステム組み込みのものを使ってもよいし、 Numerical Recipesに出ている乱数ran2を用いるなり、メルセンヌツイスターを用いるなりしてもよい。 メルセンヌツイスターのホームページは http://www.math.keio.ac.jp/~matumoto/mt.html にある。