8个版本 (4个稳定版)
使用旧的Rust 2015
1.0.3 | 2019年9月27日 |
---|---|
1.0.2 | 2018年1月28日 |
1.0.0 | 2017年9月3日 |
0.2.1 | 2017年1月12日 |
0.1.1 | 2017年1月11日 |
#703 in 数学
每月 3,507 次下载
在 6 个 crates(2 个直接使用)中使用
8KB
nrfind
nrfind
为任意可微函数提供牛顿-拉夫森根查找器,以及方便的包装器,用于常见用例,如平方根。
文档可在 docs.rs 上找到
一个简单的示例,用于在18次迭代中找到 x^3 + x^2 + 1 的根
extern crate nrfind;
// The function for whose roots find_root will solve
fn f(x: f64) -> f64 {
x.powi(3) + x.powi(2) + 1.0
}
// That function's derivative
fn fd(x: f64) -> f64 {
(3.0 * x.powi(2)) + (2.0 * x)
}
fn main() {
let initial_guess = 100.0;
let precision = 0.1;
let iterations = 18;
println!("x^3 + x^2 + 1 = 0 when x ~= {}",
nrfind::find_root(&f, &fd,
initial_guess,
precision,
iterations).unwrap());
}
这将打印:当 x ~= -1.4675327346575013 时,x^3 + x^2 + 1 = 0
。
请注意,虽然此方法保证可以近似一个根,但它可能不是你关心的根!更改给定的 x0
猜测可能会影响近似的根。
依赖关系
~475KB