从 solve_ivp 输出中获取三个不同列表的数组的最后一个值。

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

我正在建立三个不同的ODE模型。solve_ivp的打印输出是每个ODE的三个列表。我如何打印三个列表中每个列表的最后一个值? print(sol.y[-1])只给出最后一个列表。

tspan = [0, 10000] #seconds
t = np.linspace(tspan[0], tspan[1])
initial = [20, 0, 0]

sol = solve_ivp(model, tspan, initial)

print(sol.y)

输出。

[[2.00000000e+01 1.99990001e+01 1.99890061e+01 1.98895720e+01
  1.89440444e+01 1.59285599e+01 1.27338290e+01 1.05115203e+01
  9.25629525e+00 8.51028020e+00 7.92735437e+00 7.32952056e+00
  6.63044941e+00 5.79660466e+00 5.07428476e+00 4.49779742e+00 
  3.97602595e+00 3.51484826e+00 3.13197614e+00]

 [0.00000000e+00 9.99900471e-04 1.09934587e-02 1.10386319e-01
  1.05191521e+00 3.99641947e+00 6.93123165e+00 8.65040780e+00
  9.20098306e+00 9.08672531e+00 8.65293473e+00 8.04145441e+00
  7.28001634e+00 6.36184974e+00 5.56499178e+00 4.93275862e+00
  4.35948296e+00 3.85276205e+00 3.43484204e+00]

 [0.00000000e+00 3.39461014e-09 4.10612220e-07 4.16734618e-05
  4.04044408e-03 7.50206385e-02 3.34939397e-01 8.38071947e-01
  1.54272170e+00 2.40299450e+00 3.41971090e+00 4.62902503e+00
  6.08953425e+00 7.84154560e+00 9.36072346e+00 1.05694440e+01
  1.16644911e+01 1.26323897e+01 1.34331818e+01]
python ode
1个回答
0
投票

使用

print(sol.y[:,-1])

遍历第一个指数的所有变体和第二个指数的最后一个数字。

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