第8回、よく使われるアルゴリズム
目次
よく使われるアルゴリズム
今回で最後となります。前回までで私のやりたかったことはほぼすんでしまって
いますが、今回は今後みなさんがコンピュータプログラミングを経験する際に
知っておいても損をしないアルゴリズムの紹介をしておこうと思います。
今日の話では個々のアルゴリズムの詳しい説明はしないつもりでいます。
”こんなのはいつやらどこかで聞いたことがあるなあ”と思い出してもらえれば
僕は満足です。
行列の対角化
行列の対角化は線形代数でも重要なテーマの1つですが、化学の中でもあちこちに
現れてきます。私は分子軌道法でめしをくっていますが、毎日行列の対角化を
行なっている、と言っても過言ではございません。分子軌道法でよく現れる
行列は”実対称行列”であって、このような行列の対角化を行なうアルゴリズムも
いくつか存在します。ここでは効率は悪いのですが、そのアルゴリズムは比較的
理解しやすいヤコビ法を使います。
- 例題1
- Huckel 近似において、直鎖ポリエン H-(CH=CH)n-H の
電子状態(軌道エネルギー、その分子軌道係数)を計算する。
- 解説
- 理論の詳細はアトキンス物理化学(上)P.611-625までを参照せよ。ちなみに
n=1のときはCH2=CH2(エチレン),n=2のときは
CH2=CH-CH=CH2(ブタジエン),
n=3のときはCH2=CH-CH=CH-CH=CH2(ヘキサトリエン)
となる。n=1, n=2の場合であれば解くべき永年方程式も次数が低いので
手で解くことも可能であるが、それ以上になるとちょっといやになってくる。
(だが行列に規則性があるため、一般的な解析解もすでに分かっている)
ここでは、数値的に解いてみよう。
- 解答
いくつかの計算結果を示す。
高速フーリエ変換法(FFT)
分子のさまざまな性質を探るには、通常何らかの方法で摂動を与え、その後の変化を
とらえることによってその分子の個性を知ることができる。例えば赤外線をあてれば
分子の振動回転状態が、また核磁気共鳴を調べれば分子の結合状態
(その他もろもろの情報)を得ることができる。これらの手法に共通して現れて
くるテクニックがフーリエ変換法である。つまり観測される生データは時間に
対する減衰曲線であるが、それをフーリエ変換してやることにより波数に対する
強度分布の形に変換できる。この操作を非常に高速に行なうアルゴリズムが
高速フーリエ変換(Fast Fourier Transformation)である。
- 例題2
- 3つの波数からなる信号に対して予測される信号を全て描け。それぞれの
信号は以下の通り。
- 1000 cm-1 にあって強度が I ...... (a)
- 1100 cm-1 にあって強度が 2I ..... (b)
- 1150 cm-1 にあって強度が 0.5I ... (c)
また、発生させた信号をFFTを行なうサブルーチンを通してみるとどのよう
になるか?
- 解説
- アトキンス物理化学(下)P.687 例題16.1 である。例題では信号を発生
させるだけであるが、ここではさらにFFTに通してみる。
- 解答
-
やりたかったが、できなかったこと
今日の課題
今回は最後ですので、自由課題とします。ただし
- 共同製作はOK。ただし共同製作者を明記し、また1課題につき3名までとする。
- 同一課題は問題のとらえ方、解き方が明らかに異なっていた時のみ
認める。またはやく提出された方にオリジナリティがあったとみなし、
そちらを優先する。不許可の場合は当人にe-mailで通知する。
- 考察はもちろん自分で行ない、その課題を選んだ理由、得られた結果に
対する考察、今後の発展性などについて議論する。
- 提出期限は今年いっぱい。つまり12月31日まで。
- 提出すべきもの(プログラム、入力データ、出力データなど)のサイズが
非常に大きくなる場合はその旨を明記すること。その後どうするかは後程
e-mailにて連絡する。
を条件とします。 またオプションとして
- 今回のコンピュータプログラミングの成績を自分でつけてみる
(優、良、可、不可の4段階)
をつけてもらってもかまいません。またこのような情報は他人にみられたく
ないと思いますので、今回のものは考察はwebには出さないようにしておきます。
また今回の課題が今までのものと比較して一番ウェイトが
重いので、必ず提出してください。今までの課題をまだ提出していない
人がいましたら、できるだけ提出して下さい。提出していなければ0点ですが、
遅れてでも提出してくれればそれなりに評価致します。
- 小テスト
- [8-1]化学に関係することであればなんでもよい。自分で問題設定し、
プログラムを書き、自分で解け。
そのような問題設定をした理由、今後の発展性など議論せよ。
本講義の目次へ戻る