Implicit Scheme: error type : ValueError : x and y must have same first dimension
Implicit Scheme: error type : ValueError : x and y must have same first dimension
我正在尝试使用欧拉时间积分方案实现热方程求解器,这是实现的特定方程:
这是我的代码:
Nt = 20
Nx = 100
x = np.linspace(0,1,Nx+1)
t = np.linspace(0,1,Nt+1)
dx = 1/Nx
dt = 1/Nt
F = dt/(dx**2)
T_temps = np.zeros(Nx+1)
T = np.zeros(Nx+1)
for i in range(Nx+1):
T_temps[i] = np.sin(x[i])
for n in range(0,Nt):
for i in range(1,Nx):
T[i] = T_temps[i] + F*(T_temps[i-1]-2*T_temps[i]+T_temps[i+1]) + ((np.pi**2)-1)*np.exp(-t[i])*np.sin(x[i])
T[0] = 0.
T[Nx] = 0.
T_temps[:] = T
plt.plot(t,T)
plt.show()
当 Nt 和 Nx 的两个值相同但当我必须修改 Nt 的值以进行必须执行的练习时,它会产生此错误:
ValueError: x and y must have same first dimension, but have shapes (101,) and (21,)
我不知道如何处理它:我明白意思但我不知道如何避免它?
非常感谢您的帮助,
此致,
当我想重现时遇到索引错误。在 np.exp(-t[i])
应该是 np.exp(-t[n])
。那么整行将是:
T[i] = T_temps[i] + F * (T_temps[i - 1] - 2 * T_temps[i] + T_temps[i + 1]) + ((np.pi ** 2) - 1) * np.exp(-t[n]) * np.sin(x[i])
您正在尝试绘制 21 个数字(t
的形状)与 101 个数字(T
的形状)的关系。要求解,请更改为 plt.plot(x, T)
,因为 x
和 T
具有相同的形状。
我正在尝试使用欧拉时间积分方案实现热方程求解器,这是实现的特定方程:
Nt = 20
Nx = 100
x = np.linspace(0,1,Nx+1)
t = np.linspace(0,1,Nt+1)
dx = 1/Nx
dt = 1/Nt
F = dt/(dx**2)
T_temps = np.zeros(Nx+1)
T = np.zeros(Nx+1)
for i in range(Nx+1):
T_temps[i] = np.sin(x[i])
for n in range(0,Nt):
for i in range(1,Nx):
T[i] = T_temps[i] + F*(T_temps[i-1]-2*T_temps[i]+T_temps[i+1]) + ((np.pi**2)-1)*np.exp(-t[i])*np.sin(x[i])
T[0] = 0.
T[Nx] = 0.
T_temps[:] = T
plt.plot(t,T)
plt.show()
当 Nt 和 Nx 的两个值相同但当我必须修改 Nt 的值以进行必须执行的练习时,它会产生此错误:
ValueError: x and y must have same first dimension, but have shapes (101,) and (21,)
我不知道如何处理它:我明白意思但我不知道如何避免它?
非常感谢您的帮助,
此致,
当我想重现时遇到索引错误。在 np.exp(-t[i])
应该是 np.exp(-t[n])
。那么整行将是:
T[i] = T_temps[i] + F * (T_temps[i - 1] - 2 * T_temps[i] + T_temps[i + 1]) + ((np.pi ** 2) - 1) * np.exp(-t[n]) * np.sin(x[i])
您正在尝试绘制 21 个数字(t
的形状)与 101 个数字(T
的形状)的关系。要求解,请更改为 plt.plot(x, T)
,因为 x
和 T
具有相同的形状。