【问题标题】:Integrate stiff ODEs with Java将刚性 ODE 与 Java 集成
【发布时间】:2015-05-11 10:15:23
【问题描述】:

是否有任何免费的、开源的 Java 刚性集成器库?

我目前正在使用 Apache Commons Math Library 中的 Dormand-Prince 8(5,3) 积分器。我正在为我的模型实现 DAE 近似,因此我可以使用这个积分器,但我有兴趣在直接 ODE 系统上尝试一个刚性求解器进行比较。

我四处寻找,但似乎找不到任何直接的答案。类似于 MATLAB for Java 中的 ode15s 求解器?

【问题讨论】:

    标签: java ode


    【解决方案1】:

    是的,Apache Commons Math library 中的所有求解器都主要针对非刚性问题。 DormandPrince853Integrator 是一个不错的通用选择,但即使是稍微僵硬的问题,它也可能表现不佳。

    您可能会寻找LSODE/ODEPACK 的实现或直接调用它的C 或FORTRAN 版本。开源的 Matlab 替代方案 Octave 使用 lsode 来求解 ODE(还有几个 R 和 Python 接口)。

    您可以在本文中阅读有关 Matlab 的 ode15s 和其他方法背后的算法:

    L. F. Shampine 和 M. W. Reichelt,“The MATLAB ODE Suite”,SIAM 科学计算期刊,1997 年 18 月 1 日,PDF link,DOI:10.1137/S1064827594276424

    【讨论】:

    • 感谢您的回复。我看过这个网站:lh3lh3.users.sourceforge.net/solveode.shtml,它有一个 lsoda 的 C 实现。对此的Java实现会显着变慢吗?在 C/FORTRAN 和 Java 的求解器之间设置一个接口是否更有意义?
    【解决方案2】:

    根据 horchler 的回答,您可以查看JavaOdeInt ,它为基于 Fortran 的求解器提供了一个接口。

    【讨论】:

      猜你喜欢
      • 2011-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-16
      • 2011-08-30
      • 2013-07-28
      • 1970-01-01
      • 2011-03-18
      相关资源
      最近更新 更多