为多个时间步长值生成多个图

问题描述 投票:1回答:1

我的目标是显示数值解的准确性以及它如何随所选时间步长的值而变化。使用以下代码生成数值解:

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值更改上面显示的代码,依此类推。有没有办法可以将这些值存储为列表或数组,并使用它来绘制值?

python python-2.7 numpy matplotlib
1个回答
1
投票

也许你可以使用字典来保存每个te3dt。例如:

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仅适用于Python 2.7。对于Python 3,请改用.values

© www.soinside.com 2019 - 2024. All rights reserved.