2019年09月14日

2階常微分方程式の数値解の練習 Python + Scipy + matplotlib

一次元調和振動子のシュレディンガー方程式の数値解だが、元の微分方程式は無次元化して単なる2階常微分方程式である。これの数値解を計算するが、ここで固有値・固有関数を求めたいわけだ。
そこでScipyのodeint()を使うと簡単に計算が可能となるのであります、ペカーー!!
image

  解析解は1,3,5,7,9….とわかっているので確認。8.0近辺に解はないって確認した。ポテンシャルが対称なので、ここではx^2 という単純なポテンシャル。その場合には固有値・固有関数を満たす波動関数は原点を通る。あるいは波動関数の導関数が原点で0である。なんちて。
このグラフは原点を通らないし、右側で発散しているので境界条件も満たさない。よって解ではない。てへ。計算は左から始めている。

櫻井捷海(さくらい かつみ) パーソナルコンピュータを用いた量子力学入門 裳華房 1989年
                              30年前の本だぜ・・・ちみぃら生まれてないがなーーー

BASIC, Turbo Pascalでのプログラム例が載っている。それをPythonでやってみたという話ね。
4次R-K法のアルゴリズムは書かず。odeint()という用意された関数を使うでし!!  Pythonが科学技術計算において意外と高速なのはScipy, Numpy等のモジュールがCやFortranで作られたものだからである・・・・とかどっかに書いてあった。Python自体の四則演算を使うのではない。

Python + Scipy + matplotlib が使えるとグラフ作成機能付き高級電卓の代わりになるよん(笑)

肝心の量子力学についてはシュレディンガー方程式が2階線形常微分方程式である、という事を知ったのでいいや、もう。上の本は入門なのでね。その次の本が出ているのかどうかは知らない。
ただ、この手の本は欲しいよね・・・・。C/C++でもJAVAでもPythonでもFortranでもいいけどさ、入門の次を紹介するような本が。
物理の法則とか現象とかの視覚化ってのが初学者には有効であるぞよ。Mathematicaを使った視覚化ってのはどっかの大学の先生のサイトにあったけど。

posted by toinohni at 09:06
"2階常微分方程式の数値解の練習 Python + Scipy + matplotlib"へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: