将刚性 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 的求解器提供了一个接口。
是否有适用于 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 的求解器提供了一个接口。