読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

(24) 摂動計算

位置エネルギーを以下のように量子調和振動子からの1次の摂動で考えます。

エネルギー順位の摂動展開は、以下のようになります。

ここで、


Hermite多項式について以下の積分公式が知られています。

ここで、

を計算するために、をHermite多項式で展開しましょう。

/* 5.2.30m */
f(x) := a*hermite(0, x) + b*hermite(2, x) + c*hermite(4, x)$
solve([f(0) = 0, at(diff(f(x), x, 2), x = 0), at(diff(f(x), x, 4), x = 0) = 4!], [a, b, c]);


続いて,を求めましょう。

/* 5.2.34m */
texput(lambda1, "\\lambda")$

M[m, n] := block(
  [p, q, d0, d1, d2],
  if mod(m + n, 2) > 0 then return(0),
  p : (m + n) / 2,
  q : abs((m - n) / 2),
  d0 : if q = 0 then 1 else 0,
  d1 : if q < 2 then 1 else 0,
  d2 :if q = 0 then 1/2 elseif q < 3 then 1 else 0,
  return(lambda1 * sqrt(m! * n!) * (1 / (p! * q!) * (3/4 * d0 + 3*p/(q+1)*d1 + 6*p*(p - 1)*d2/((q + 1)*(q + 2))))))$

assume(n>0)
print(M[n, n])$
print(M[0, 2])$
print(M[0, 4])$
print(M[0, 6])$

使用した機能


Maximaはn!の絶対値について知識を持っていないようです。


求めた結果から、

がわかりました。
n=0 についてさらに、の項を求めましょう。

/* 5.2.36m */
sum(M[0, m]^2/(-2*m), m, 2, 4)

従って、

がわかりました。