#root #newton-raphson #numeric #calculus #square-root

nrfind

基于牛顿-拉夫森法寻找根的浮点数数学函数集合

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 数学

Download history 917/week @ 2024-03-14 1005/week @ 2024-03-21 519/week @ 2024-03-28 711/week @ 2024-04-04 1217/week @ 2024-04-11 1103/week @ 2024-04-18 613/week @ 2024-04-25 899/week @ 2024-05-02 801/week @ 2024-05-09 911/week @ 2024-05-16 1085/week @ 2024-05-23 756/week @ 2024-05-30 878/week @ 2024-06-06 786/week @ 2024-06-13 981/week @ 2024-06-20 701/week @ 2024-06-27

每月 3,507 次下载
6 crates(2 个直接使用)中使用

MIT 许可证

8KB

nrfind

Crates.io version badge Build Status Passively Maintained

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