Untitled11 1
Untitled11 1
def v(x):
return -e**2/x
# Parameters
hbar = 1973 # Reduced Planck's constant
m = 0.511e6 # Mass of the electron
e=3.795
x = np.linspace(1e-2, 10, 1000) # Spatial domain
d=x[1]-x[0]
#----------------------------------------------------
# Create potential matrix
v_matrix=v(x)
#---------------------------------------------------------
# Hamiltonian matrix initialization
n = len(x)
matrix = np.zeros((n-2, n-2))
constant = 2 * m * d**2 / hbar**2
for i in range(n-2):
if i > 0:
matrix[i, i-1] = -1 # Off-diagonal (lower)
matrix[i, i] = 2 + constant * v_matrix[i+1] # Diagonal
if i < n - 3:
matrix[i, i+1] = -1 # Off-diagonal (upper)
#----------------------------------------------------------------
# Solve the eigenvalue problem
eigen_value, eigen_vector = np.linalg.eigh(matrix)
#---------------------------------------------------------------------
# Plotting the first few eigenstates
plt.figure(figsize=(10,8))
for n in range(3): # Plotting first three states
value=eigen_vector.T[n] # Taking transpose of the matrix
1
value=np.insert(value,0,0) #inserting values at the boundary
value=np.append(value,0)
plt.plot(x, value, label=f'n={n}\n Energy eigen = {eigen_value[n]*hbar**2/
,→(2*m*d**2)}')