我有一个耦合常微分方程组 . 自变量是时间t .

为了评估一些衍生函数,我需要使用根查找,解决其他ODE等问题 . 仅从计算成本的角度来看,以一定的精度评估这些函数是可行的 . 因此,在每个时间步骤中,我留下一些数字噪音 .

我尝试使用scipy.integrate.odeint或scipy.integrate.solve_ivp来解决这个ODE系统(使用'LSODA'方法,因为问题很僵硬,其他求解器遇到僵硬问题失败) . 然而,似乎求解器由于数值噪声而难以计算雅可比矩阵(我让解算器近似有限差分) . 当使用scipy.optimize.fsolve来计算根时,我遇到了类似的问题,我通过将epsfcn(见下文)设置为更高的值来修复此问题 .

我想知道我是否可以在python中为ODE求解器做类似的事情 . 似乎odeint和solve_ivp没有这样的可选参数,但也许有办法解决这个问题?

任何帮助表示赞赏!

(来自fsolve的scipy文档: epsfcn : float, optional 雅可比行的前向差近似的适当步长(对于fprime = None) . 如果epsfcn小于机器精度,则假设函数中的相对误差是机器精度的顺序 . )