微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python的ODE求解器尊重周期性

如何解决python的ODE求解器尊重周期性

我想整合一个控制问题,即形式为 dx/dt = A.f(t) 的 ODE,其中 x(t) 是 R^3 中的函数,f(t) 是 R^4 中的函数,A 是矩阵 3x4。在我的特殊情况下,f(t) = F'(t),即函数 F 的时间导数。此外,F 是 1-周期的。因此,在区间 [0,1] 上对 ODE 进行积分应该再次产生起始位置。但是,solve_ivp 中的 scipy.integrate 之类的方法根本不尊重这种周期性(我已经尝试了所有可能的方法,例如 RK45,Radau,DOP853,LSODA)。

是否有一种特殊的 ODE 求解器可以高度精确地考虑这种周期性?

解决方法

无论如何,所有算法都会遭受精度损失,因此您很可能永远无法实现精确的周期性。尽管如此,您也可以尝试通过使用参数“atol”和“rtol”来提高积分的精度,这大致将每个时间步的积分误差保持在 (atol + rtol*y) 以下。您通常可以低至 atol=rtol=1e-14。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。