3个版本 (1个稳定版)
1.0.0 | 2024年4月28日 |
---|---|
0.1.1 | 2024年4月6日 |
0.1.0 | 2024年4月6日 |
#324 in 数学
每月30次下载
58KB
2.5K SLoC
quad_gk
基于Gauss-Kronrod求积规则的快速精确数值积分库。
基本用法
use std::sync::Arc;
use quad_gk::*;
let integral: Integral = quad_gk!(
Arc::new(|x: f64| x.sin() * (-x).exp()),
0.0..100.0,
);
// estimated relative error in numerical integration is smaller than 1e-6 by default.
assert!(integral.is_ok(1e-6))
更精确的计算
use std::sync::Arc;
use quad_gk::*;
let integral: Integral = quad_gk!(
Arc::new(|x: f64| x.sin() * (-x).exp()),
0.0..100.0,
rel_tol=1e-14,
max_interval_count=1_000_000,
coef=GK91,
);
// estimated relative error in numerical integration is smaller than 1e-14!
assert!(integral.is_ok(1e-14))
lib.rs
:
quad_gk
基于Gauss-Kronrod求积规则的快速精确数值积分库。
基本用法
use std::sync::Arc;
use quad_gk::*;
let integral: Integral = quad_gk!(
Arc::new(|x: f64| x.sin() * (-x).exp()),
0.0..100.0,
);
// estimated relative error in numerical integration is smaller than 1e-6 by default.
assert!(integral.is_ok(1e-6))
更精确的计算
use std::sync::Arc;
use quad_gk::*;
let integral: Integral = quad_gk!(
Arc::new(|x: f64| x.sin() * (-x).exp()),
0.0..100.0,
rel_tol=1e-14,
max_interval_count=1_000_000,
coef=GK91,
);
// estimated relative error in numerical integration is smaller than 1e-14!
assert!(integral.is_ok(1e-14))
依赖项
~1.5MB
~25K SLoC