我正在尝试使用R中的deSolve包来解决一个大型的刚性ODE系统(92个状态,207个参数)(我目前正在使用vode
求解器)。
我收到以下错误,它告诉我解算器无法在很早的时间步骤进行集成
dvode - 在T(= R1)和步长H(= R2)处 校正器聚合失败 或者用abs(H)= HMIN
用于:R1 = 0,R2 = 4.49711e-14 警告信息: 1:在vode中(IC,TIME,Mass_balance,p,mf = 10,maxord = 5): 一步重复收敛测试失败,但整合成功 - 雅各比矩阵不准确? 2:在vode中(IC,TIME,Mass_balance,p,mf = 10,maxord = 5): 早点回来。结果是准确的,只要它们去了
我可以使用相同的公差,使用ode15s
求解器在MATLAB中求解同一组方程。我的问题是我应该使用deSolve的其他任何求解器吗?我已经尝试了包中的几乎所有求解器。我在scipy
ode15s
中等同scipy.integrator.ode
integrator = 'vode'
的选项method = 'bdf'
,maxorder = 5
和{{1} }。
我应该在R / deSolve的vode
中使用其他一组选项吗?
我的电话如下:IC
是初始条件,TIME
有时间向量,Mass_balances
有ODE,p
有参数,{{1}设置mf
,(这会将method flag
设置为METH
),BDF
将最大顺序设置为5。
maxord
我确信方程组没有其他错误,因为我可以使用vode(IC, TIME, Mass_balance, p, rtol = 1e-4, atol = 1e-6, mf = 20 ,maxord=5)
来解决它们。我也确定系统相当僵硬,因为在R和MATLAB中ode45需要很长时间(我没有让它在隔夜运行后完成)
非常感谢任何帮助。
解算器ode15s
的完整消息粘贴在
vode