"Hydrogen atom"

clear

psi(n,l,m) = R(n,l) Y(l,m)

R(n,l) = 2 / (n^2 a0^(3/2)) *
         sqrt((n - l - 1)! / (n + l)!) *
         (2 rho / n)^l *
         L(2 rho / n,n - l - 1,2 l + 1) *
         exp(-rho / n)

L(x,m,j) = sum(k,0,m,(-x)^k (m + j)! / ((m - k)! (j + k)! k!))

rho = r / a0

a0 = 4 pi epsilon0 hbar^2 / (e^2 mu)

Y(l,m) = (-1)^m sqrt((2l + 1) / (4 pi) (l - m)! / (l + m)!) *
         P(l,m) exp(i m phi)

-- associated legendre of cos theta

P(l,m) = test(m < 0, (-1)^m (l + m)! / (l - m)! P(l,-m),
         1 / (2^l l!) sin(theta)^m *
         eval(d((x^2 - 1)^l,x,l + m),x,cos(theta)))

H(psi) = -hbar^2 Lap(psi) / (2 mu) - e^2 / (4 pi epsilon0 r) psi

Lap(f) = 1/r^2 d(r^2 d(f,r),r) +
         1/(r^2 sin(theta)) d(sin(theta) d(f,theta),theta) +
         1/(r sin(theta))^2 d(f,phi,2)

E(n) = -mu / (2 n^2) (e^2 / (4 pi epsilon0 hbar))^2

check(H(psi(1,0,0)) == E(1) psi(1,0,0))

check(H(psi(2,0,0)) == E(2) psi(2,0,0))
check(H(psi(2,1,0)) == E(2) psi(2,1,0))
check(H(psi(2,1,1)) == E(2) psi(2,1,1))
check(H(psi(2,1,-1)) == E(2) psi(2,1,-1))

check(H(psi(3,0,0)) == E(3) psi(3,0,0))
check(H(psi(3,1,0)) == E(3) psi(3,1,0))
check(H(psi(3,1,1)) == E(3) psi(3,1,1))
check(H(psi(3,1,-1)) == E(3) psi(3,1,-1))
check(H(psi(3,2,0)) == E(3) psi(3,2,0))
check(H(psi(3,2,1)) == E(3) psi(3,2,1))
check(H(psi(3,2,-1)) == E(3) psi(3,2,-1))
check(H(psi(3,2,2)) == E(3) psi(3,2,2))
check(H(psi(3,2,-2)) == E(3) psi(3,2,-2))

for(n,1,3,for(l,0,n - 1,for(m,-l,l,check(H(psi(n,l,m)) == E(n) psi(n,l,m)))))
