調和振動子の定常状態のSchrödinger方程式
は、なるg(x)を使うことで、形式的に以下の1階微分方程式に変換できます。ψ(x)からg(x)からへの変換式を見ると、ψ(x)が偶函数の時g(0)=0、ψ(x)が奇函数の時であることがわかります。
また、ポテンシャルV(x)が調和振動子のように極限で無限大になると仮定すると、解が有限になるには、でなければならないことがわかります。従って、(nは0以上の整数)。境界条件は偶函数と奇函数で共有することに成るので、偶関数はn偶数、奇函数はn奇数と割り当てると、
(nは0以上の整数)と書き直せます。
この微分方程式と狙い撃ち法を使って、まず、調和振動子の励起エネルギー準位を求めましょう。狙い撃ち法というのは、望みの境界条件を得るように初期パラメータを変えて、微分方程式を数値的に解かせる方法です。
/* 5.2.40m */ load(dynamics)$ v(x) := x^2$ n : 1$ g0 : if mod(n, 2) = 0 then 0 else -%pi/2$ asympt : (2 * floor(n / 2) + 1) * %pi / 2$ elow : 0$ ehigh : 8$ dz : 0.05$ zlim : 7$ /* 無限大の代わり */ while ehigh - elow > 10^(-14) do ( e : (elow + ehigh) / 2, print(float(e)), s : sqrt(e), traj : rk(1 - v(z/s)/s^2*cos(g)^2, g, g0, [z, 0, zlim, dz]), final : traj[length(traj)][2], if final > asympt then ehigh : e else elow : e)$
厳密解に近い固有値が求められました。
本番です。摂動パラメータを0.01と仮定して、の基底固有値を求めてみましょう。
/* 5.2.41m */ v(x) := x^2 + 0.01*x^4$ n : 0$ gam0 : if mod(n, 2) = 0 then 0 else -%pi/2$ asympt : (2 * floor(n / 2) + 1) * %pi / 2$ elow : 1$ ehigh : 1.01$ dz : 0.02$ zlim : 5$ while ehigh - elow > 10^(-14) do ( e : (elow + ehigh) / 2, print(float(e)), s : sqrt(e), traj : rk(1 - v(z/s)/s^2*cos(gam)^2, gam, gam0, [z, 0, zlim, dz]), final : traj[length(traj)][2], if final > asympt then ehigh : e else elow : e)$
(24) 摂動計算で求めた式
にを代入してみると、1.00736875ですから、先に試した摂動なしの場合の精度と同程度で一致しています。参考文献
- Crandall, Mathematica―理工系ツールとしての (アジソン ウェスレイ・トッパン情報科学シリーズ) p.110-p.114
- Wikipedia, Shooting method