第 19 行,在 u[i+1] = u[i] - <module> c * dt / dx * (u[i] - n[i-1]) 类型错误:对象不可下标'int'


import numpy as np                    # load numpy as np
import matplotlib.pyplot as plt
c=1
n=51
dx=2/(n-1)
t_final=60
dt=0.1
u=np.ones(n)
u[int(.5 / dx):int(1 / dx + 1)] = 2
print(u)
x=np.linspace(0,2,n)
print(x)
t=np.arange(0,t_final,dt)
for j in range(len(t)):
for i in range(1,n-1):
u[i+1] = u[i] - c * dt / dx * (u[i] - n[i-1])
u[0]=1
u[n-1]=1
plt.figure(1)
plt.plot(x,u)
plt.axis([0,2,0,2])
plt.show()

当我运行此代码时,在 u[i+1] = u[i] - c * dt/dx * (u[i] - n[i-1]( 类型错误: 'int' 对象不可下标

n[i-1]

这是因为n不是一个数组。你是说u[i-1]

最新更新