matlab中desolve,用R中的deSolve包求解刚性常微分方程组(vode到ode15s的转换)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值