6. Quantum Mechanics

Legal Notice, Disclaimer, and Book Ordering Information:

Null

Setup

\(Clear["Global`*"]; 
Off[General::spell]; 
Off[General::spell1]; 
    \)

Needs["Calculus`VectorAnalysis`"]

Needs["Graphics`PlotField3D`"]

<< "D:\Mma\Inits\ch6init.m"

Clear["Global`*"];

6.2 Problems

6.2.1  One Dimensional Schrödinger Equation

Problem 1:  Bound particle in an infinite potential well

Suppose a particle is bound by the infinite potential well V[x] = 0 if 0<x<a and =∞ otherwise.

Part (a)   Solve Schrödinger's Equation fotr the general wave function when V=0.  Compart the solution with the user-defined wave function waveTrig.

SetCoordinates[Cartesian[x,y,z]]

eq1 = 0 == schrodinger[0,En] @ ψ[x]//ExpandAll

dsol = DSolve[eq1,ψ[x],x]//Flatten

kRule={k -> Sqrt[2 En m]/ℏ}

test=waveTrig[x,k,C[1],C[2]]//.kRule//PowerExpand

(ψ[x]//.dsol)==test

Part (b)   Use the boundary conditions at the walls to determine the eigenfunctions.  Normalize the eigenfunctions.  Show that the energy eigenvalues follow from the user-defined operator hamiltonian.

ψ1 = waveTrig[x,n π/a,c1,0]

norm[psi_,x_,a0_,a1_]:=
	(1/Sqrt[Integrate[(psi//conjugate)psi,{x,a0,a1}]]//Simplify//PowerExpand)

normConst =
	(norm[ψ1,x,0,a]/.{Sin[2 n π]->0}//PowerExpand)

ψ[x_,n_,a_] = normConst waveTrig[x,n π/a,c1,0]

hamEq = energy ψ[x,n,a] == (hamiltonian[0]@ψ[x,n,a])

eSol = Solve[hamEq,energy]//Flatten

Energy[n_] = energy/.eSol

Part (c)   Explicitly verify that the first four wave functions are orthogonal and graph the wave functions.

table = Table[Integrate[(ψ[x,i,a]//conjugate) ψ[x,j,a],{x,0,a}],{i,4},{j,4}];

TableForm[table,TableHeadings->{Table[ψ[x,i],{i,4}],Table[ψ[x,i],{i,4}]}]

wavePlot = Plot[Evaluate[Table[ψ[n,x,1],{n,4}]],{x,0,1}
			,PlotStyle->
				{Dashing[{.01,.07}],Dashing[{.03,.05}],
				 Dashing[{.05,.03}],Dashing[{.07,.01}]}
			,PlotLabel->Evaluate[FontForm["ψ",{"Symbol",12}]]
			,DisplayFunction->Identity];

text[name_,position_List]:=
Text[FontForm[name,{"Times-Bold",12}],position]

Show[wavePlot,Graphics[
	{text["n=1",{.5, 1.2}],text["n=2",{.7,-1.5}]
	,text["n=3",{.5,-1.5}],text["n=4",{.3,-1.5}]}]
	,DisplayFunction->$DisplayFunction];