【发布时间】:2017-01-14 21:36:16
【问题描述】:
x1=np.linspace(xmin, xmax, Nsteps)
y1=np.linspace(0., 0., Nsteps)
h=x1[1]-x1[0]
V1=-V0*np.exp(-alpha*(x1)**2)
E=-1
k=math.sqrt(-2*E)
y1[0]=1
y1[1]=np.exp(k*h)
f=2*[V1-E]
def a():
for i in range (1,Nsteps):
denom = np.sum(2+10*h**2*f[i]/12)
numer = np.sum(1-h**2*f[i+1]/12)
return denom/numer
def b():
for i in range(1, Nsteps):
denom = np.sum(1-h**2*f[i-1]/12)
numer = np.sum(1-h**2*f[i+1]/12)
return denom/numer
def y2():
a[i]*y1[i] + b[i]*y1[i-1]
for i in range (1, Nsteps):
print(y2)
plt.plot(x1, y2)
plt.show()
对于一些给定的参数,我的目标是生成一个实现拍摄方法的代码。但是,在运行它时,由于 x1 和 y2 的长度不同,我得到了 IndexError。我的 i 边界是 1 和 1001。我假设在边界 f[i-1] 和 f[i+1] 产生超出定义范围的值?同样,在运行最后一个 for 循环时,我是否在该 for 循环中再次运行了以前的 for 循环,从而产生了一些奇怪的东西?这些是我的猜测,我的第二个问题是是否有解决该问题的技巧?我可以实施一些 if 条件来纠正这个问题吗?
【问题讨论】:
标签: python-3.x for-loop range