** Die stationäre Schrödinger-Gleichung kann durch die Differenzmethode auf das (allgemeine) Eigenwertproblem der Matrix reduziert werden. Der Zweck dieser Arbeit ist es, die Eigenenergie und Eigenfunktion von Elektronen im dreidimensionalen isotropen Oszillatorpotential mit dieser Methode zu bestimmen. ** **.
Über den Umriss der Matrixmethode
Ich würde es begrüßen, wenn Sie sich darauf beziehen könnten.
Potential des isotropen harmonischen 3D-Oszillators
Wie
** Diese Gleichung kann in eine konfluente supergeometrische Differentialgleichung umgewandelt werden, und die genaue Lösung des Energieeigenwerts $ E $ einer regulären Lösung am Ursprung ist **
Es ist bekannt, ** [2] zu sein. ** Wobei L die Orbitalquantenzahl und N die natürliche Zahl $ N = 0,1,2, ... $ ist.
Daher das Energiespektrum
Wird sein. Die meisten von ihnen schrumpfen.
In dieser Arbeit wird Gleichung (3) als Eigenwertproblem der Matrix gelöst und der Energieeigenwert $ E_n $ und die Eigenfunktion $ u_n (r) $ berechnet.
Der gesamte Code ist [Rydberg Atomic Unit](https://ja.wikipedia.org/wiki/%E5%8E%9F%E5%AD%90%E5%8D%98%E4%BD%8D%E7%B3% BB) wird verwendet. das ist,
Elektronenmasse $ m = 1/2 $ Dirac-Konstante $ \ hbar = 1 $ Länge in Bohr $ a_ {B} = (0,529177 Å) $ Einheit, Energie $ 1Ry = 13.6058 eV
Ist zu sein.
"""
Randwertproblem nach Matrixmethode
Potential des isotropen harmonischen 3D-Oszillators
"""
import numpy as np
import scipy.linalg
import matplotlib.pyplot as plt
delta_x = 0.05
x0, x1 = 0.001, 10
N=int((x1-x0)/delta_x)
print("N=",N)
L=0 #Orbitalquantenzahl. Gegebenenfalls ändern.
hbar=1
m_elec=1/2
omega=1
y = np.zeros([N-1,N+1])
y[:,0] = 0
y[:,-1] = 0
A=np.zeros([N-1,N-1])
B=np.identity(N-1)
v = np.zeros([N-1])
vcent = np.zeros([N-1])
veff = np.zeros([N-1])
for i in range(N-1): #Ponshall des harmonischen Oszillators
x = x0 + i*delta_x
vcent[i] = L*(L+1)/x**2 #Zentrifugalpotential
v[i] = m_elec*omega**2*(x**2)/2
veff[i] = v[i] +vcent[i]
for i in range(N-1): #Achten Sie auf die Indexposition, da es sich um eine dreifach diagonale Matrix handelt.
if i == 0:
A[i,i] = 2/(delta_x**2) + veff[i]
A[i,i+1] = -1/(delta_x**2)
elif i == N-2:
A[i,i-1] = -1/(delta_x**2)
A[i,i] = 2/(delta_x**2) + veff[i]
else:
A[i,i-1] = -1/(delta_x**2)
A[i,i] = 2/(delta_x**2) + veff[i]
A[i,i+1] = -1/(delta_x**2)
eigen, vec= scipy.linalg.eigh(A,B)
print("eigen values_3points=",eigen[0:4])
for j in range(N-1):
for i in range(1,N):
y[j, i] = vec[i-1,j]
#
# for plot
X= np.linspace(x0,x1, N+1)
plt.plot(X, y[0,:],'-',markersize=5,label='y1')
plt.plot(X, y[1,:],'-',markersize=5,label='y2')
plt.plot(X, y[2,:],'-',markersize=5,label='y3')
plt.legend(loc='upper right')
plt.xlabel('X') #x-Achsenbeschriftung
plt.ylabel('Y') #Beschriftung der y-Achse
plt.show()
L=0 eigen values_3points= [ 1.46118173 3.44087896 5.42483146]
** Genaue Werte von 1,5, 3,5 und 5,5 stimmen innerhalb weniger Prozent überein. ** **.
Die funktionale Form von $ u_n (r) $ n = 0, 2, 4 ist in der folgenden Abbildung dargestellt.
L=1 eigen values_3points= [ 2.4997526 4.49899205 6.49760609]
** Genaue Werte von 2,5, 4,5 und 6,5 stimmen innerhalb weniger Prozent überein. ** **.
Die funktionale Form von $ u_n (r) $ n = 1, 3, 5 ist in der folgenden Abbildung dargestellt.
** Wenn sich die funktionale Form des Potentials ändert, ändern Sie einfach die Formel für v [i]. ** **.
[2] Kenichi Goto et al. ["Detaillierte Theorie der angewandten quantenmechanischen Übung"](https://www.amazon.co.jp/%E8%A9%B3%E8%A7%A3%E7%90%86%E8 % AB% 96% E5% BF% 9C% E7% 94% A8% E9% 87% 8F% E5% AD% 90% E5% 8A% 9B% E5% AD% A6% E6% BC% 94% E7% BF % 92-% E5% BE% 8C% E8% 97% A4-% E6% 86% B2% E4% B8% 80 / dp / 4320031717), Kyoritsu Publishing, 1982.
Recommended Posts