我在用诺维罗夫定理解薛定谔方程。所以,我最初的项目问题是:求解氢原子基态和第一激发态的s波薛定谔方程:
D^2y+2(E-V(r))y=0,D=D/dr
电势为V(r)=-1/r
但我想让这个程序成为一个自动计算其本征能量的程序,使用hatree单位并重新考虑它:这是我的代码:
import numpy as np
import matplotlib.pyplot as plt
dom=[0.001,5]
n=10
r,dr=np.linspace(dom[0],dom[1],n,retstep=True)
def Potential(x,E):
energy=2*(E+(1/x))
return energy
i=0
E=-2
s0i=0.0
s1i=0.0001
si=np.zeros(n)
indi=0
while i==0:
si[0]=s0i
si[1]=s1i
for j in range(0,n-2,1):
f0c=((dr**2)*Potential(x=r[j],E=E))/12.0
f1c=((dr**2)*Potential(x=r[j+1],E=E))/12.0
f2c=((dr**2)*Potential(x=r[j+2],E=E))/12.0
s2i=((2*(1-5*f1c)*s1i)-((1+f0c)*s0i))/(1+f2c)
s1i=s2i
s0i=s1i
si[j+2]=s2i
if abs(s2i)<=1e-18:
i=1
elif s2i>1e-18:
E=E-0.1
elif s2i<-1e-18:
E=E+0.1
elif(indi==500):
i=1
print('loop Count : ',indi,'Energy : ',E,'last Pshi',si[-1])
indi+=1
print(len(r),len(si))
plt.plot(r,si)
plt.show()
我不明白问题在哪里,我得到了一些有趣的结果。所以请帮我这么做
我看你会说荷兰语。所以我希望我能用我的母语回答
我知道瓦尔米是不是很有希望?这是一个很好的例子
Maar Uiterard对本征代码非常感兴趣。 在je代码ontstaat er een溢出 安杰森·赫特·德泽·埃罗·格夫特:
在安特伍德的家里,这是一个很好的选择
这是我第一次遇到306名学生。。。。格洛特·格塔尔(erg groot getal),他骑着一匹绿色的战马——1/2。这是一个很好的选择。你是不是想让你的工作更顺利
相关问题 更多 >
编程相关推荐