CODE:
import numpy as np
import [Link] as plt
N = 200
h = 1/N
x = [Link](0,1,N)
# Hamiltonian matrix
A = [Link]((N,N))
for i in range(N):
A[i][i] = -2
if i>0:
A[i][i-1] = 1
if i<N-1:
A[i][i+1] = 1
A = -A/(2*h**2)
# Eigenvalues and Eigenstates
E,psi = [Link](A)
[Link](figsize=(14,8))
for i in range(N):
if psi[0][i]<0:
for j in range(N):
psi[j][i] = -psi[j][i]
sq_vals = []
for j in range(N):
sq_vals.append(psi[j][i]**2)
norm = [Link]([Link](sq_vals,x))
for j in range(N):
psi[j][i] /= norm
for i in range(3):
[Link](3,1,(i+1))
psi_exact = [Link](2)*[Link]([Link]*(i+1)*x)
E_exact = (((i+1)**2)*([Link]**2))/2
[Link](x,psi_exact,color='red',label=f'Analytical,
E={(E_exact):.6}')
y = []
for j in range(N):
[Link](psi[j][i])
[Link](x,y,'k--',label=f'Numerical, E={E[i]:.6}')
[Link](f'For n={i+1}')
[Link]('x')
[Link]('ψ(x)')
[Link]()
[Link]()
[Link]('Particle in a Box using Finite Difference Method')
plt.tight_layout()
[Link]()
OUTPUT: