我正在尝试使用R中的deSolve包来解决一个大型的刚性ODEs系统(92个状态,207个参数)(我目前正在使用vode解算器)。在
我得到了以下错误,它告诉我,求解器未能在很早的时间步骤集成dvode -- At T (=R1), and step size H (=R2) the
corrector converged failed repeatedly
or with abs(H) = HMIN
with: R1= 0, R2 = 4.49711e-14
Warning messages:
1: In vode(IC, TIME, Mass_balance, p, mf = 10, maxord = 5) :
repeated convergence test failures on a step, but integration was successful - inaccurate Jacobian matrix?
2: In vode(IC, TIME, Mass_balance, p, mf = 10, maxord = 5) :
Returning early. Results are accurate, as far as they go
我可以在MATLAB中使用相同公差的ode15s解算器来求解同一组方程。我的问题是,有没有其他的解决方案,我应该使用的德索尔夫?我几乎试过所有的解决方案。我读到(here)在scipy中,ode15s的等价物是scipy.integrator.ode,带有选项integrator = 'vode',method = 'bdf'和{}。在
我是否应该在R/deSolve的vode中使用其他选项集。在
我的调用如下,IC是初始条件,TIME有时间向量,Mass_balances有ODE,p有参数,mf设置{},(这将METH设置为BDF),maxord将最大顺序设置为5。在vode(IC, TIME, Mass_balance, p, rtol = 1e-4, atol = 1e-6, mf = 20 ,maxord=5)
我确信方程组没有其他错误,因为我可以用ode15s来解决它们。我也确信这个系统是相当僵硬的,因为R和MATLAB中的ode45都需要很长的时间(我没有让它在运行了一夜之后完成)
如果有任何帮助,我们将不胜感激。在
来自求解器vode的完整消息粘贴在下面
^{pr2}$