将刚性 ODE 与 Java 集成

Integrate stiff ODEs with Java

是否有适用于 Java 的免费开源硬集成器库?

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

我四处搜索,但似乎找不到任何直接的答案。类似于 Java?

的 MATLAB 中的 ode15s 求解器

是的,Apache Commons Math library are mainly for non-stiff problems. DormandPrince853Integrator 中的所有求解器都是一个不错的通用选择,但即使对于稍微僵硬的问题,它也可能表现不佳。

您可能会寻找 LSODE/ODEPACK or call a C or FORTRAN version of this directly. The open source Matlab alternative, Octave, uses lsode 的实现来求解 ODE(还有几个 R 和 Python 接口)。

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

L. F. Shampine and M. W. Reichelt, "The MATLAB ODE Suite", SIAM Journal on Scientific Computing, 18-1, 1997, PDF link, DOI: 10.1137/S1064827594276424

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