#ode #numeric #euler #ndarray #runge-kutta #rungekutta

freude

为 ndarray 提供 ODE(常微分方程)的一些简单、固定步长的积分器库

9 个版本 (破坏性更新)

0.7.0 2019年6月26日
0.6.0 2019年3月21日
0.5.0 2018年1月15日
0.4.0 2017年7月17日
0.1.2 2017年2月16日

#415 in 科学

每月23次下载

MIT/Apache

18KB
444

freude

“freude”晶格将提供步进器和积分器来解决 ODE(常微分方程)。它受到 boost::numeric::odeint 的启发。

特性

  • 显式固定步长 ODE 求解器
    • Euler
    • Heun
    • 经典四阶 Runge-Kutta (RK4)

待办事项

  • 隐式方法
  • 自适应步进器
    • DOPRI, RKF45
  • 辛求解器
  • 广义 Runge-Kutta 方法(可能通过 Butcher 表)?

近期更改

  • 0.7.0
    • 要求步进器的 Debug 界限(破坏性更改)
  • 0.6.0
    • 更新 ergonomics
  • 0.5.0
    • 要求 ndarray 0.11,提升所有相关依赖项
  • 0.4.0-dev
    • 更新基准测试以与 v0.4.0 一起工作
  • 0.4.0
    • 重新设计和简化 OdeStepper 逻辑
      • Stepper 不再包含 Ode 系统,而是作用于 Ode::State 借用
      • 移除 Integrator:吸收到 Stepper
      • 移除 Observer 特性
    • 提升到 ndarray 0.10
  • 0.3.1
    • 实现步进器以在 tuple 晶格 中定义的元组上工作;
    • 为元组上的泛型函数/闭包实现 ODE 特性。
  • 0.3.0
    • 更新到 ndarray 0.9
    • 通过 ndarrayZipIntoNdProducer 特性统一 VecArrayBase 步进器状态
    • 提供几个作为基准测试的示例(Kuramoto 和混沌神经网络模型)
  • 0.2.0
    • 重新设计和简化 ODE、步进器和积分器逻辑;
    • 系统状态不再被认为是 ODE 的内部属性,而是一个传递给步进器的参数。
  • 0.1.1
    • 实现 Euler 和 Heun 方法
  • 0.1.0
    • 初始版本
    • 显式、固定步长积分器和步进器的定义
    • 常微分方程(ODEs)的定义
    • Runge-Kutta-4方法的实现

趣事

该软件包名称 freude 受贝多芬的《欢乐颂》(Ode an die Freude)的启发,可以发音为 /ˈfʀɔɪ̯də/ 或,也可以发音为 froy-D-E(就像 O-D-E)。

依赖项

~2MB
~33K SLoC