import matplotlib.pylab as plt
from math import *
import numpy as np
#parameters
n= 101
delx= 0.5
delt=0.1
D=1.0
alpha=D*delt/(delx*delx)
#initial profile
a=np.zeros(n)
a[0]=1.0
#loop for time and x
for j in range(0,500):
for i in range(1,101):
a[i]=a[i]*(1-2*alpha)+alpha*(a[i-1]+a[i+1])
a[100]=a[i]*(1-2*alpha)+2*alpha*(a[i-1])
#loop for 20 figures
for j in range(20):
plt.plot(a,'r-')
plt.show()
我得到Index out of bounds error
。我是python的新手,请解释并修复。 (最初的代码在Octave中),所以在Python中有这个问题。索引越界错误
感谢
这是[a] = a [i] *(1-2 * alpha)+ alpha *(a [i-1] + a [i + 1]) – Ganesh
@Ganesh,'a [i +1]'在这一行的最后会导致问题。 – ForceBru
@Ganesh,我不知道你在想什么。你想在内循环的每次迭代之后进行绘图吗?还是外面的?或者是什么?我想你最好重新阅读Octave代码,并在尝试将其转换为Python之前查看它的运行情况。 – ForceBru