[Wissenschaftlich-technische Berechnung nach Python] Lösen der Schledinger-Gleichung im stationären Zustand im dreidimensionalen isotropen Oszillatorpotential nach der Matrixmethode, Randwertproblem, Quantenmechanik

Einführung

** 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

[Wissenschaftlich-technische Berechnung durch Python] Lösung des Randwertproblems gewöhnlicher Differentialgleichungen im Matrixformat, numerische Berechnung [1]

Ich würde es begrüßen, wenn Sie sich darauf beziehen könnten.


Inhalt

Potential des isotropen harmonischen 3D-Oszillators V(r) = \frac{m_e \omega^2r^2}{2} {\tag {1}} Die stationäre Schrödinger-Gleichung für die Radialwellenfunktion $ R (r) $ in Bezug auf

u(r) = r R(r) {\tag{2}}

Wie

-u''(r)+\frac{2 m_e}{\hbar^2}(V(r)+\frac{L(L+1)\hbar^2}{2m_e r^2}) = E \ u(r) {\tag {3}} Kann zur Verfügung gestellt werden.

** 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 **

E_n = \frac{\hbar \omega}{2} (n+\frac{3}{2}),\ ( \ n = 4N+2L+3 {\tag{4}})

Es ist bekannt, ** [2] zu sein. ** Wobei L die Orbitalquantenzahl und N die natürliche Zahl $ N = 0,1,2, ... $ ist.

Daher das Energiespektrum E = \hbar \omega [1.5, 2.5, 3.5, ...] {\tag{5}})

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.


Code

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()

Ergebnis

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.

t.png

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. t.png


Nachtrag

** Wenn sich die funktionale Form des Potentials ändert, ändern Sie einfach die Formel für v [i]. ** **.


Verweise

[1] [Wissenschaftlich-technische Berechnung durch Python] Lösung des Randwertproblems gewöhnlicher Differentialgleichungen im Matrixformat, numerische Berechnung

[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

[Wissenschaftlich-technische Berechnung nach Python] Lösen der Schledinger-Gleichung im stationären Zustand im dreidimensionalen isotropen Oszillatorpotential nach der Matrixmethode, Randwertproblem, Quantenmechanik
[Wissenschaftlich-technische Berechnung von Python] Lösen der eindimensionalen Schrödinger-Gleichung im stationären Zustand durch Aufnahmemethode (2), harmonisches Oszillatorpotential, Quantenmechanik
[Wissenschaftlich-technische Berechnung von Python] Lösen der eindimensionalen Schrödinger-Gleichung im stationären Zustand durch Schießmethode (1), Potential vom Well-Typ, Quantenmechanik
[Wissenschaftlich-technische Berechnung durch Python] Lösung des Randwertproblems gewöhnlicher Differentialgleichungen im Matrixformat, numerische Berechnung
[Wissenschaftlich-technische Berechnung nach Python] Lösen der eindimensionalen Newton-Gleichung nach der Runge-Kutta-Methode 4. Ordnung
[Wissenschaftlich-technische Berechnung nach Python] Numerische Lösung der zweidimensionalen Laplace-Poisson-Gleichung für die elektrostatische Position nach der Jacobi-Methode, elliptische partielle Differentialgleichung, Randwertproblem
[Wissenschaftlich-technische Berechnung nach Python] Numerische Lösung des Problems des eindimensionalen harmonischen Oszillators nach der Speed-Berle-Methode
[Wissenschaftlich-technische Berechnung nach Python] Numerische Lösung des Eigenwertproblems der Matrix durch Potenzmultiplikation, numerische lineare Algebra
[Wissenschaftlich-technische Berechnung mit Python] 2D-Random-Walk (Drunken-Walk-Problem), numerische Berechnung
[Wissenschaftlich-technische Berechnung nach Python] Vergleich der Konvergenzgeschwindigkeiten der SOR-Methode, der Gauß-Seidel-Methode und der Jacobi-Methode für die Laplace-Gleichung, die partielle Differentialgleichung und das Randwertproblem
[Wissenschaftlich-technische Berechnung von Python] Anpassung durch nichtlineare Funktion, Zustandsgleichung, scipy
[Wissenschaftlich-technische Berechnung mit Python] Lösen (verallgemeinerter) Eigenwertprobleme mit numpy / scipy mithilfe von Bibliotheken
[Wissenschaftlich-technische Berechnung mit Python] Lösen der gewöhnlichen Differentialgleichung zweiter Ordnung nach der Numerov-Methode, numerische Berechnung
[Wissenschaftlich-technische Berechnung von Python] Numerische Berechnung zur Ermittlung des Ableitungswerts (Differential)
[Wissenschaftlich-technische Berechnung mit Python] Analytische Lösungssympathie zur Lösung von Gleichungen
[Wissenschaftlich-technische Berechnung mit Python] Inverse Matrixberechnung, numpy
[Wissenschaftlich-technische Berechnung mit Python] Numerische Lösung der gewöhnlichen Differentialgleichung zweiter Ordnung, Anfangswertproblem, numerische Berechnung
[Wissenschaftlich-technische Berechnung nach Python] Monte-Carlo-Simulation nach der Metropolenmethode der Thermodynamik des 2D-Anstiegsspinsystems
[Wissenschaftlich-technische Berechnung mit Python] Lösen simultaner linearer Gleichungen, numerische Berechnung, Numpy