【发布时间】:2019-02-20 15:48:44
【问题描述】:
所以我试图在 Python 中将以下等式实现为二维数组:
u[i][j+1] = u[i][j] + dt*l*(u[i-1][j] - u[i][j]).
这是我必须这样做的代码:
l = 0.3
n = 3
m = 100
dt = 3.0
T = 30
A = 20
t = np.arange(0, 100, 0.1)
def u0(A, t, T):
return (A/2)*(1 + np.sin((2*np.pi*t)/T))
u = np.zeros((n, m))
for j in range(m):
u[0][j] = u0(A,dt*j,T)
for i in range(0, n):
u[i][0] = 10
for i in range(1,n):
for j in range(m-1):
u[i][j+1] = u[i][j] + dt*l*(u[i-1][j] - u[i][j])
u01 = (A/2)*(1 + np.sin((2*np.pi*t)/T))
for i in range(1, n):
for j in range(m - 1):
plt.plot(t, u01, 'g-')
plt.plot((j), u[1][j+1], c = 'r', marker = '_')
plt.plot((j), u[2][j+1], c = 'b', marker = '_')
每当我尝试让最后两个图的标记为“r-”或“b-”时,绘图功能将不起作用,这只适用于第一个图,这就是为什么我认为我做了一些事情实现数组时出错。
我只是不确定如何绘制二维数组,需要一些帮助。
就上下文而言,这是我尝试在 Python 中建模的汽车跟随模型。其中 u0 是前车,u1 是下一辆车,以此类推。 j 是第 n 个司机检查前面的车在做什么的时间步长。 u0 的函数是前车的行为,这就是为了弄清楚后车的行为所需要的。
【问题讨论】:
标签: python arrays matplotlib multidimensional-array plot