用C和MATLAB求解刚性常微分方程

时间:2016-01-18 20:39:48

标签: c matlab ode sundials

我有2 * m + 3 STIFF 常微分方程要求解。我试图使用MATLAB ode15s为m = 1解决它,它工作正常。但我想使用Sundials软件包CVODE来解决方程式。在尝试这样做时,我使用了“向后微分公式”和牛顿迭代。我不提供jacobian并允许它以数字方式计算。但它不起作用并显示错误:

[CVODE WARNING] CVode
 Internal t = 0 and h = 0 are such that t + h = t on the next step. The solver will continue anyway.

[CVODE ERROR] CVode
 At t = 0 and h = 0, the correction convergence test failed repeatedly or with :h: = hmin.

SUNDIALS_ERROR: CVode<> failed with flag -4
  1. 我相信CVODE使用与ode15s相同的向后差异。那么为什么它不起作用?
  2. 我应该尝试在CVODE中使用预处理的Krylov求解器吗?
  3. 期待任何帮助。谢谢。

0 个答案:

没有答案