我正在尝试编写一个嵌套循环,以计算温度(te)与时间(t)的多个值,每个值都使用不同的时间步长(dt)。
dt_values = [0.05, 0.025, 0.1, 0.05, 0.001]
for j in dt_values:
t = np.arange(0,100,[j])
te = np.zeros(len(t))
te[0] = te_init
dt = j
def f(te):
y = -r*(te - te_surr) # y is the derivative
return y
for i in range(1,len(t)):
te[i] = te[i-1] + f(te[i-1])*[j]
plt.plot(t, te)
但是我收到以下错误消息:
t = np.arange(0,100,[j])
TypeError:/:' int'不支持的操作数类型和'列出'
那么,在创建t数组时我不可能像我一样使用列表吗?我不能使用,例如
对于范围内的j ...
因为我对dt的值没有均匀分开。所以,我想知道,有没有另一种方法来定义np.arange支持的dt_values?
答案 0 :(得分:1)
step参数应该是int而不是列表。 将[j]更改为j
有关 numpy.arange
dt_values = [0.05, 0.025, 0.1, 0.05, 0.001]
for j in dt_values:
t = np.arange(0,100,j)
te = np.zeros(len(t))
te[0] = te_init
dt = j
def f(te):
y = -r*(te - te_surr) # y is the derivative
return y
for i in range(1,len(t)):
te[i] = te[i-1] + f(te[i-1])*[j]
plt.plot(t, te)