#样条插值 #插值 #样条 #akima

makima_spline

修改后的 Akima 样条插值实现

8 个稳定版本

1.1.3 2020年10月28日
1.1.1 2020年10月27日
1.1.0 2020年10月22日
1.0.4 2020年10月18日
1.0.2 2020年10月17日

#785 in 数学

45 每月下载量

MIT 许可证

14KB
229

makima_spline

修改后的 Akima 插值实现
+ 线性外推
+ 1., 2., 和 3. 阶导数
+ 二次样条插值作为特性

使用方法

use makima_spline::Spline;

你的数据格式如下

let x = vec![1., 2., 3., 4., 5., 6., 7., 8.];
let y = vec![-1., -1., -1., 0.0, 1., 1., 1., 1.];

转换为样条使用的类型 Vec<(f64, f64)>

let points = makima_spline::vec_to_points(&x, &y);

从数据点构建样条

let spline = Spline::from_vec(points);

为了采样,这样做

let y = spline.sample(x);

2D 插值

基于 bicubic crate,可以执行二维插值。

创建点

let x = vec![-1.0, 0.0, 2.0];
let y = vec![-0.0, 1.0];
let f = vec![5.0, 4.0, 5.0, 1.0, 1.0, 1.0];

构建 Bicubic 结构体

let bci = makima_spline::n_dimensional::bicubic_from_grid(&x, &y, &f);

子模块称为 n_dimensional,以防将来支持更高维度,但当前只支持 2D 插值

依赖关系