scipy.integrate.odeint 是否可以输出内部计算

我需要从对 odeint 的调用传递内部计算。我通常在完成积分后再次重新计算这些值,但我更愿意在 odeint 的调用函数中进行所有计算。


我的问题在计算上并不繁重,因此在 ode 求解器内部进行计算时会增加一些额外的性能损失是可以接受的。


from scipy.integrate import odeint

import numpy as np


def eom(y, t):

    internal_calc = y/(t+1)

    xdot = y


    return xdot, internal_calc


if __name__ == '__main__':


    t = np.linspace(0, 5, 100)

    y0 = 1.0  # the initial condition


    output, internal_calc = odeint(eom, y0, t)

这段代码没有运行,但希望能显示我所追求的。我想在每次通过积分器时从 eom 函数中获取“internal_calc”值。


我四处寻找选项,但我认识的最好的 Python 程序员之一告诉我编写自己的集成器,这样我就可以做我想做的事。


在我这样做之前,我想我会问其他人是否有从 odeint 求解器中获取值的方法。


红颜莎娜
浏览 134回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python