是否存在用于常微分方程(ODE)求解器的c ++库?

kir*_*gum 14 c++ numerical-methods ode differential-equations

更具体地说,我对8阶Dormand-Prince嵌入式方法感兴趣,它基于Runge-Kutta和刚性方程.

我使用Numerical Recipes 3但我经常在编译它们的库时遇到问题.我想知道其他选择.

hea*_*der 15

您也可以尝试odeint.它具有经典的Runge-Kutta求解器,用于刚性系统的Rosenbrock4和一些多步法.它只是标题,但你需要boost库.

  • 更新:Odeint现在是推动的一部分:http://www.boost.org/doc/libs/master/libs/numeric/odeint/doc/html/index.html (2认同)

Dav*_*hme 7

GNU科学图书馆有几个微分方程求解.他们有一个使用Prince-Dormand.它是用C语言编写的,因此编译时不会有问题.

  • 一个小注意事项:来自GSL的DP步进器是明确的,并且可能不太适合于具有非常不同时间尺度的僵硬问题.您可以考虑使用隐式方法进行测试(GSL有一些). (3认同)