我的目标是展示数值解的准确性,以及它如何随所选时间步长的值而变化。数值解是使用以下代码生成的:
def f(te3):
y3 = -r3*(te3 - te_surr) #y is the derivative
return y3
for i in range(1, len(t3)):
te3[i] = te3[i-1] + f(te3[i-1])*dt然后绘制这些数值解:
plt.plot(t3,te3)最初,dt被选为0.1。我正在尝试显示不同时间步长的不同值产生的各种图: 0.05,0.01等。然而,除了手动键入dt的每个值之外,我不确定如何在我的代码中实现这些。
dt2 = 0.05
dt3 = 0.025
dt4 = 0.01
dt5 = 0.005
dt6 = 0.001然后为每个DT值更改上面所示的代码,依此类推。有没有一种方法可以将这些值存储为列表或数组,并使用它来绘制这些值?
发布于 2017-12-21 09:51:00
也许你可以使用字典来保存每个dt的te3。例如:
dt_values = [0.05, 0.025, 0.1, 0.05, 0.001]
my_te3 = {0.05:[1,2,3], 0.025:[1,2,3]}
for i, dt in zip(range(1, len(my_te3[0.05])), dt_values):
my_te3[dt][i] = my_te3[dt][i-1] + f(my_te3[dt][i-1])*dt然后,要绘制图形,您只需循环键:
for te3 in my_te3.itervalues():
plt.plot(t3,te3)请注意,itervalues只能在Python2.7中工作。对于Python3,请使用.values。
https://stackoverflow.com/questions/47916610
复制相似问题