Program:
# Experiment 1: Solve the S-wave Schrödinger equation for the ground state
and first excited state of H-atom.
# Coulombic potential
#2130210 Rajan Mishra
import numpy as np
import [Link] as plt
x0 = eval(input("Enter the initial value of x = "))
x1 = eval(input("Enter the final value of x = "))
y0 = eval(input("Enter the y at initial x = "))
y1 = eval(input("Enter the y at final x = "))
n = int(input("Enter the number of steps = "))
#step size
h = abs(x1-x0)/n
hcut = 1973
m = 0.511*10**6
e = 3.795
p = (hcut**2)/(2*m)
x = [Link](n+1)
for i in range (n+1):
x[i] = x0+i*h
print(x,"are the values of x")
potential = []
def a(l):
return ((-1)*p)/(h**2)
def b(l):
[Link](- (e*e)/l)
return (2*p)/(h**2) - (e*e)/l #V = - e^2/r
def c(l):
return ((-1)*p)/(h**2)
def d(l):
return 0
A,B,C,D = [],[],[],[]
#Generating the tridiagonal matrix
for i in range (1,n):
#B[i] and D[i]
[Link](b(x[i]))
[Link](d(x[i]))
for j in range (1,n-1):
[Link](c(x[j]))
for k in range (2,n):
[Link](a(x[k]))
tridiag = [Link]([n-1,n-1])
tridiag = tridiag + [Link](B)+[Link](C,1)+[Link](A,-1)
print(tridiag,"is the tridiagonal matrix")
val,vec = [Link](tridiag)
0
ar = []
for i in range (len(val)):
if val[i]<0:
[Link](i)
#appending the index of negative energy eigenvalue
print("The Energy eigenvalues are = ",val[i])
for i in range (len(ar)):
arr = []
for j in range(len(vec)):
[Link](vec[j][ar[i]])
[Link](x[1:n],arr,label = "E"+str(i))
[Link]()
[Link]("r")
[Link]("u(r)")
[Link]("Coulomb Potential Wavefunction")
[Link]()
[Link]()
Output:
Enter the initial value of x = 0
Enter the final value of x = 15
Enter the y at initial x = 0
Enter the y at final x = 0
Enter the number of steps = 1000
[ 0. 0.015 0.03 ... 14.97 14.985 15. ] are the values of x
[[ 32897.04264731 -16928.58882366 0. ... 0.
0. 0. ]
[-16928.58882366 33377.11014731 -16928.58882366 ... 0.
0. 0. ]
[ 0. -16928.58882366 33537.13264731 ... 0.
0. 0. ]
...
[ 0. 0. 0. ... 33856.21462324
-16928.58882366 0. ]
[ 0. 0. 0. ... -16928.58882366
33856.2155882 -16928.58882366]
[ 0. 0. 0. ... 0.
-16928.58882366 33856.21655122]] is the tridiagonal matrix
The Energy eigenvalues are = -13.611204733840399
The Energy eigenvalues are = -3.4033137382562537
The Energy eigenvalues are = -0.5990616129048474
The Energy eigenvalues are = -1.5055447780262636