1 个不稳定版本
0.0.1 | 2021年11月30日 |
---|
#27 在 #calculus
20KB
303 代码行
数值积分
Rust语言中的数值近似算法和特性
该crate的目的是提供一组常用的近似微分方程的算法,并统一它们在公共API下,以便尽可能简化使用和测试不同积分方案的过程。
如何使用
API的主要入口点是Integrator
、VelIntegrator
和AdaptiveIntegrator特性。每个特性都有一个
init()
方法和step()
。它们都被设计成所有积分器的值和状态都存储在外部,并通过方法参数传递。
每个特性代表一类需要不同类型数据的算法。Integrator
特性接受当前状态和时间、时间步长以及一个可以计算状态向量导数的闭包/函数。 VelIntegrator
执行同样的操作,但还需要一个以复杂方式计算速度的函数。而AdaptiveIntegrator
接受最小误差值而不是时间步长。
除了上述特性之外,还有类似上述特性的特性,但它们在函数签名中不包含泛型,以便可以作为dyn
类型使用。
使用方法,您可以一般地使用特性并传递特定的实现者,或者直接使用各种算法。
目前,此crate包括速度Verlet和Runge-Kutta家族中的方法(包括欧拉和RK4),但如果足够多的人想要它们,还可以添加其他方法(如线性多步法)。
项目当前状态
该项目目前处于暂停状态,除非足够多的人表示对其感兴趣并希望继续开发,否则可能保持这种状态。如果真的发生这种情况,请期待API会有破坏性的变化,因为我对当前的设计并不完全满意,而且我希望添加的某些特性需要对设计进行轻微的重构。
依赖关系
~315KB