使用R中的deSolve包解决ODE的僵硬系统(代码转换为ode15s)

时间:2015-04-02 00:50:47

标签: python r matlab numpy ode

我正在尝试使用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

0 个答案:

没有答案