- 締切済み
量子化学のプログラミングについて
大学院進学が決まった化学科の大学4回生です。 私の研究室では、Gaussianなどを使って原子や分子の構造や軌道、エネルギーを計算しています。 少し時間に余裕ができる夏休みを利用して、自分でプログラミングができたらいいなと思うようになりました。 プログラミングを全くしたことがありません。エクセルのマクロをほんの少し触ったことがあるだけです。 よく質問にあるのでしょうが どの言語の勉強から始めたらいいでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- hardwork
- ベストアンサー率0% (0/0)
近年は数多くの有償・無償のソフトが公開されていますが、black boxのまま使用されていることが殆どだと思います。しかし本当に量子化学計算の内容を理解するにはご自信でソフトを作成し計算を完結してみてみることが必須だと思います。 計算ソフトは、初めから高級言語であるC++言語などで作成される方が、原子数の多い又は基底関数の多い分子を扱え、且つ高速で計算できるので、理想的といえます。 パソコンを扱う大多数のひとは、WINDOWS / Excel を使用されていると思いますので、Excel VBA を利用されるのが、量子化学計算ソフト作成の初心者にはもっとも手頃ではないでしょうか。 言語の解説はヘルプですべて見ることができるし、 多数の例文が応用できます。極端な言い方をすれば、言語の解説書を購入する 必要もありません。計算結果の図示もできます。ただし、GUIとしての入力は不可能(?)、扱える分子数・基底関数の数は限られるし、計算速度は遅いという欠点 は否めません。 量子化学計算の black box 的な計算内容を明らかなものにしたいと言う目的のためには Excel VBAで十分であるし、そのlogicは比較的容易にC++などにも後から置き換える事も可能です。
- 参考URL:
- http://excelqc.web.fc2.com/
- kirinoma
- ベストアンサー率53% (288/542)
いろんな方向性があると思います。 個人的な観点から以下にまとめてみます。 (私の趣味&狭い知識の中の話なので、「出来る」といった事が あまり出来なかったり、「この言語では出来ない」といった事が 詳しい人だとやり方を知っている、といった事があるかもしれません。 その点、ご了承下さい。) 1.標準的(?)プログラミング言語 C(C++)、Javaなど。 コマンドラインプログラムから、GUIを備えた一般的にイメージする 「ソフト」まで何でも作ることができる。(ネットワークソフト ・画像処理ソフト、統計処理ソフト、ゲーム、etc) 細かい処理まで自分で書く(もしくは、その処理を含む、 適したライブラリを探してくる) ・環境構築 C(VisualStudio2008EEの場合) http://www.microsoft.com/japan/msdn/vstudio/2008/product/express/install_vc.aspx ・入門サイト C http://cvwww.ee.ous.ac.jp/vc08prog.html http://www.kumei.ne.jp/c_lang/ 2.スクリプト言語 Rubyなど。 あまり複雑な(特にGUIをばりばり使うような)事は出来ないが、 定型的な処理なら10行くらいのコードで出来てしまう事も。 簡単なテキスト処理などに向いている?(ある文書を読み込んで こういう条件で文字の入れ替えしたい、など) ・公式サイト Ruby http://www.ruby-lang.org/ja/ ・入門サイト Ruby http://www.lab.ime.cmc.osaka-u.ac.jp/~kiyo/pub/lecture/unixpro/ruby/ 3.統計演算プログラミング言語(ソフトウェア) Matlab(有料、ただし大学なら大抵ある)、Scilab(無料)など。 統計演算、行列演算に特化した言語、というかソフトウェア。 大量のデータ処理や、機械制御、シミュレーション、演算結果の多様なグラフ表示などに向いている。 FFTなどの数学関数、画像処理関数、音声処理関数などがコマンド(関数)として用意されている。研究向け? C言語(Fortlan言語)に似た文法で処理を記述する。 ・公式サイト http://www.mathworks.co.jp/ http://www.scilab.org/ja/ ・入門サイト http://www.cybernet.co.jp/matlab/support/technote/ http://www.dnj.ynu.ac.jp/hflab/gakusei_jikken/jikken.html http://www.ecl.hiroshima-u.ac.jp/~ohno/scilab/introscilab/introscilab.html Web系の言語とかを含めるとさらに増えます。 ざっとこんなところでしょうか。 以上、参考になれば幸いです。