【问题标题】:solving 1D Schrödinger equation with Numerov method (python)用 Numerov 方法求解一维薛定谔方程(python)
【发布时间】:2017-11-23 22:09:40
【问题描述】:

晚上好。

我目前正在尝试解决一维薛定谔方程。 (时间无关)使用 Numerov 方法。该方法的推导对我来说很清楚,但我在实施时遇到了一些问题。我试图在google上寻找解决方案,有一些(like this onethis one),但我不太明白他们在代码中做了什么......

问题:

通过一些数学运算,您可以得到以下形式的等式: 其中。首先,我想看看潜在的V(x)=1 if -a<x<a

由于我没有能量值或 Psi 的第一个值(启动算法所需的)我只是猜到了一些......

代码如下所示:

import numpy as np
import matplotlib.pyplot as plt
from scipy.constants import hbar

m= 1e-27
E= 0.5

def numerov_step(psi_1,psi_2,k1,k2,k3,h):
    #k1=k_(n-1), k2=k_n, k3=k_(n+1)
    #psi_1 = psi_(n-1) and psi_2=psi_n
    m = 2*(1-5/12. * h**2 * k2**2)*psi_2
    n = (1+1/12.*h**2*k1**2)*psi_1
    o = 1 + 1/12. *h**2 *k3**2
    return (m-n)/o

def numerov(N,x0,xE,a):
    x,dx = np.linspace(x0,xE,N+1,retstep=True)

    def V(x,a):
        if (np.abs(x)<a):
            return 1
        else:
            return 0

    k = np.zeros(N+1)
    for i in range(len(k)):
        k[i] = 2*m*(E-V(x[i],a))/hbar**2

    psi= np.zeros(N+1)
    psi[0]=0
    psi[1]=0.1    

    for j in np.arange(2,N):
        psi[j+1]= numerov_step(psi[j],psi[j+1],k[j-1],k[j],k[j+1],dx)

    return psi

x0 =-10
xE = 10
N =1000

psi=numerov(N,x0,xE,3)

x = np.linspace(x0,xE,N+1)

plt.figure()
plt.plot(x,psi)
plt.show()

由于情节看起来根本不像波函数,所以一定有问题,但我很难找出它是什么。如果有人能提供一点帮助,那就太好了。

谢谢西托

【问题讨论】:

    标签: python math physics numerical-methods differential-equations


    【解决方案1】:

    不幸的是,我不太记得量子物理学,所以我不了解一些细节。我仍然在您的代码中看到一些错误:

    1. 为什么在numerov_step 里面你会和k1k2k3 相提并论?

    2. 在你的主循环中

       for j in np.arange(2,N):
          psi[j+1]= numerov_step(psi[j],psi[j+1],k[j-1],k[j],k[j+1],dx)
    

    你搞砸了索引。看起来这条线应该是

       for j in np.arange(2, N):
         psi[j] = numerov_step(psi[j - 2], psi[j - 1], k[j - 2], k[j - 1], k[j], dx)
    
    1. 这是我不太明白的部分。查看first link 的动画,看起来这个方程只对V(x)E 的某些组合有很好的解决方案,在其他情况下它很快就会变得疯狂。看起来您的V(x) 以及EhbarV(x) 的比例与参考文章完全不同,这可能是解决方案疯狂的另一个原因。

    【讨论】:

    • 首先感谢您的评论。我根据您的建议更正了我的代码。 1)我引用了一篇略有不同的论文,其 k 的定义不同...... 2)这可能是主要错误,所以谢谢! 3)在将质量和 hbar 更改为 1 之后(问 TA),我至少得到了一些看起来像波函数的东西......我可能会尝试更多的电位,看看会发生什么,如果出现更多问题,我会发布他们也在这里
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-13
    相关资源
    最近更新 更多