Simple Harmonic Oscillator - Ladder Operators

The Hamiltonian for the linear harmonic oscillator can be written (OverHat[H])=-(1/2)((d^2)/(d (x^2)))+(1/2)(ω^2)(x^2), in units with ℏ=m=1. The eigenstates are given by (Subscript[E, n])=(n+(1/2))ω, (Subscript[ψ, n])(x)=((((2^n)n!))^(-1/2))(((ω/π))^(1/4))(e^(-ω (x^2)/2))(Subscript[H, n])((Sqrt[ω])x), n=0, 1, 2, …, where (Subscript[H, n]) is a Hermite polynomial. An alternative reformulation of the problem can be based on the representation H=((SubPlus[(OverHat[a])])(SubMinus[(OverHat[a])])+(1/2))ω in terms of ladder operators (SubMinus[(OverHat[a])])=(Sqrt[(ω/2)])x+(i/(Sqrt[2ω]))p=(Sqrt[(ω/2)])x+(1/(Sqrt[2ω]))(d/(d x)) and (SubPlus[(OverHat[a])])=(Sqrt[(ω/2)])x-(i/(Sqrt[2ω]))p=(Sqrt[(ω/2)])x-(1/(Sqrt[2ω]))(d/(d x)).  The step-down or annihilation operator (SubMinus[(OverHat[a])]) acts on the eigenfunctions according to (SubMinus[(OverHat[a])]) (Subscript[ψ, n])(x)=(Sqrt[n])(Subscript[ψ, n-1])(x), with (SubMinus[(OverHat[a])]) (Subscript[ψ, 0])(x)=0. The step-up or creation operator (SubPlus[(OverHat[a])]) satisfies (SubPlus[(OverHat[a])])(Subscript[ψ, n])(x)=(Sqrt[n+1])(Subscript[ψ, n+1])(x).

In this Demonstration, the eigenfunction (Subscript[ψ, n])(x) is plotted in black. Also shown is either (SubMinus[(OverHat[a])]) (Subscript[ψ, n])(x) in red or (SubPlus[(OverHat[a])])(Subscript[ψ, n])(x) in blue.

ψ[n_,ω_,x_]:=((((ω/π))^(1/4))/(Sqrt[(2^n)n!]))(E^(-ω (x^2)/2)) HermiteH[n,(Sqrt[ω]) x];
g[n_,ω_,a_]:=Plot[{ψ[n,ω,x],(Sqrt[n+a]) ψ[n+2a-1,ω,x]},{x,-4(Sqrt[((n+1)/(2ω))])-.5,4(Sqrt[((n+1)/(2ω))])+.5},PlotRange->All,PlotStyle->{{Thick,Black},{Thick,RGBColor[1-a,0,a]}},FrameLabel->{Style[x,18],Style[Row[{Subscript["ψ",n],"(",Style["x",Italic],")"}],18]},GridLines->Automatic,Frame->True];
Manipulate[
Show[g[n,ω,a],
ImageSize->{595,375},
ImagePadding->{{45,10},{45,10}}],
{{ω,1,"ω"},.5,2,Appearance->"Labeled"},
{{n,2,"n"},Range[0,10],Setter},{{a,0,"operator"},{0->Style["(SubMinus[(OverHat[a])])",Bold,Red],1->Style["(SubPlus[(OverHat[a])])",Bold,Blue]},Setter},TrackedSymbols:>{ω,n,a},
ControlPlacement->Top,
SaveDefinitions->True]