我正在寻找一种方法来设置固定步长,以通过 Python 中的 Runge-Kutta 方法解决我的初始值问题。因此,我如何才能告诉scipy.integrate.RK45
保持其积分过程的不断更新(步长)?
非常感谢。
Scipy.integrate 通常与可变步长方法一起使用,通过在数值积分时控制 TOL(一步误差)。 TOL 通常是通过使用另一种数值方法进行检查来计算的。例如RK45使用5阶龙格-库塔法检查4阶龙格-库塔法的TOL来确定积分步长。
因此,如果必须对固定步长的 ODE 进行积分,只需通过将 atol、rtol 设置为相当大的常数来关闭 TOL 检查即可。例如,像这样的形式:
solve_ivp(your function, t_span=[0, 10], y0=..., method="RK45", max_step=0.01, atol = 1, rtol = 1)
TOL 检查设置得很大,以致于积分步长将是您选择的 max_step。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)