我正在尝试绘制像电位这样的阶跃函数前后的波动函数。
我发现,如果初始能量大于势能,则看起来不错,但如果势能更大,则解决方案将产生负向分歧。我认为这种情况下的解决方案是;
enter code here
psi(x)=A*exp(x)+B*exp(-x)
在量子力学中,我们通常通过将A设置为零来放弃第一项。但是,我也想删除这种非物理的解决方案,但是我不知道如何在python中完成。
所以我的问题是,当我使用odeint解决ODE时,有什么方法可以消除分歧的解决方案? step函数之后的解应该像exp(-x)这样的函数。
非常感谢
enter code here
import matplotlib.pyplot as plt
%matplotlib inline
from scipy.integrate import odeint
import numpy as np
def ps(y,t):
if t<10:
u=0
else:
u=2
psi=y[0]
dpsi=y[1]
dp=dpsi
dp2=(-1+u)*psi
return [dp,dp2]
yo=[1,0]
t=np.linspace(0,100,400)
psis=odeint(ps,yo,t)
plt.ylim(-10,10)
plt.xlim(0,20)
plt.plot(t,psis[:,1],'r')
plt.plot([0,10,10,40],[0,0,2,2],'g')