Метод факторизации

К лекции 8 (2024)

Гармонический осциллятор

Определение собственных функций при помощи оператора рождения, вычисление нормировочных множителей

F[0]=Exp[-(x^2)/2];
F[n_]:=Factor[-D[F[n-1],x]+x F[n-1]]/;n>0

F[0]
F[1]
F[2]
F[3]
F[4]
r[n_]:=((Integrate[((F[n])^2),{x,-∞,∞}])^(1/2))
rr[n_]:=((NIntegrate[((F[n])^2),{x,-∞,∞}])^(1/2))

Table[r[j],{j,0,5}]

Сравнение со встроенными функциями Эрмита

Factor[Table[F[j]-HermiteH[j,x]F[0],{j,0,5}]]

Построение графика с n уровнями

osc[n_]:=Plot[
Evaluate[Append[Table[F[j]/rr[j]+2j+1,{j,0,n-1}],(x^2)]],{x,-4.5,4.5},
PlotStyle->Append[Table[Automatic,n],Blue],
Filling->Table[j->2j-1,{j,1,n}],
Ticks->{Automatic,Table[If[OddQ[i],{i,i,{0,.015}},{i,,{0,.01}}],{i,0,2n+3,1/2}]},
PlotRange->{{-Sqrt[2n]-1,Sqrt[2n]+1},{-0.5,2n+0.2}},
BaseStyle->{FontSize->16,FontFamily->"Times New Roman"}]

osc[6]

Manipulate[osc[Floor[n]],
{{n,0},0,10,Appearance->"Labeled"}]

Потенциал Морзе

Проверка уравнений

Clear[c,a,f,u,A,F,r]

f[n_]:=-n+c-Exp[x]
a[n_]:=-(((n-c))^2)
u[n_]:=Exp[2x]+(2(n-c)-1)Exp[x]

Expand[-D[f[n]+f[n+1],x]+((f[n])^2)-((f[n+1])^2)+a[n]-a[n+1]]
Expand[-u[n]+((f[n])^2)+D[f[n],x]+a[n]]

Минимум потенциала (Subscript[u, 0])

D[u[0],x]
Solve[%==0/.x->Log[X],X]
Factor[u[0]/.x->Log[X]/.%[[2]]]

Определение с.ф., операторов рождения и нормировочных констант

A[n_,y_]:=Expand[-D[y,x]-f[n]y]
F[n_,n_]:=Exp[Integrate[f[n],x]]
F[n_,k_]:=A[k,F[n,k+1]]/;k<n
r[n_,k_]:=((NIntegrate[((F[n,k])^2),{x,-∞,∞}])^(1/2))

morse[cc_]:=Block[{m=Ceiling[cc]-1,fu,aa},
c=cc;
fu=Evaluate[Append[Table[F[j,0]/r[j,0]+a[j],{j,0,m}],u[0]]];
aa=Table[a[j],{j,0,m}];
Clear[c];
Plot[fu,
{x,-5.5,3.5},
Filling->Table[j->aa[[j]],{j,1,m+1}],
PlotStyle->Append[Table[Automatic,m+1],Blue],
PlotRange->{{-5.6,3.6},{-1-(((2cc+1))^2)/4,4}},
AxesLabel->{"x","u = 2\!\(\*SuperscriptBox[\(E\), \(2\\ x\)]\)-"<>ToString[2cc+1]<>" (E^x)"},
BaseStyle->{FontSize->16,FontFamily->"Times New Roman"}]
]

Manipulate[morse[c],
{{c,0},0,10,Appearance->"Labeled"}
]

morse[3.7]

Export[NotebookDirectory[]<>"morse.pdf",morse[3.7],"PDF"];

Осциллятор со щелью

Ниже скопированы команды для гармонического осциллятора. Попробуйте модифицировать их и построить потенциал и собственные функции из задачи 8.5. Нормировочные множители лучше сразу считать NIntegrate.

Определение собственных функций при помощи оператора рождения, вычисление нормировочных множителей

F[0]=Exp[-(x^2)/2];
F[n_]:=Factor[-D[F[n-1],x]+x F[n-1]]/;n>0

F[0]
F[1]
F[2]
F[3]
F[4]
r[n_]:=((Integrate[((F[n])^2),{x,-∞,∞}])^(1/2))
rr[n_]:=((NIntegrate[((F[n])^2),{x,-∞,∞}])^(1/2))

Table[r[j],{j,0,5}]

Сравнение со встроенными функциями Эрмита

Factor[Table[F[j]-HermiteH[j,x]F[0],{j,0,5}]]

Построение графика с n уровнями

osc[n_]:=Plot[
Evaluate[Append[Table[F[j]/rr[j]+2j+1,{j,0,n-1}],(x^2)]],{x,-4.5,4.5},
PlotStyle->Append[Table[Automatic,n],Blue],
Filling->Table[j->2j-1,{j,1,n}],
Ticks->{Automatic,Table[If[OddQ[i],{i,i,{0,.015}},{i,,{0,.01}}],{i,0,2n+3,1/2}]},
PlotRange->{{-Sqrt[2n]-1,Sqrt[2n]+1},{-0.5,2n+0.2}},
BaseStyle->{FontSize->16,FontFamily->"Times New Roman"}]

osc[6]