### 8 releases (4 stable)

Uses old Rust 2015

1.0.3 | Sep 27, 2019 |
---|---|

1.0.2 | Jan 28, 2018 |

1.0.0 | Sep 3, 2017 |

0.2.1 | Jan 12, 2017 |

0.1.1 | Jan 11, 2017 |

#**794** in Math

**1,956** downloads per month

Used in **6** crates
(2 directly)

**MIT**license

8KB

# nrfind

provides a Newton-Raphson root finder for arbitrary differentiable functions, as well as convenient wrappers for common use cases like square roots.`nrfind`

Documentation is available on docs.rs

A simple example of usage to find the roots of x^3 + x^2 + 1 in 18 iterations:

`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``(``)``)``;`
`}`

This will print:

.`x ^3 + x^2 + 1 = 0 when x ~= -1.4675327346575013`

Note that while this method is guaranteed to approximate *a* root, it may not be
the root you care about! Changing the given

guess can have an impact on
which root is approximated.`x0`

#### Dependencies

~475KB