2 releases (1 stable)
1.0.0 | Jan 4, 2024 |
---|---|
0.1.0 | Jan 6, 2023 |
#1082 in Math
421 downloads per month
17KB
372 lines
polynomial-roots
Find the real roots of huge polynomials in milliseconds
How to compile?
cargo build --release
How to use?
The coefficients are in degree-ascending order, that is: $x^0 + x^1 + x^2 + x^3 + \cdots$
The coefficients are passed space-separated, therefore to solve the polynomial $3 - 9x + x^3$ you need to run the program the following way:
$ cargo install polynomial-roots
$ polynomial-roots
3 -9 0 1
{ -3.154523; 0.33760893; 2.816914; }
(note: don't forget the zero coefficients)
How it works?
The roots are found using the linear formula ($\dfrac{-b}{a}$), the quadratic formula ($\dfrac{-b \pm \sqrt{b^2 - 4 a c}}{2 a}$), or the false position method over the Cauchy's bound. It can solve polynomials of any degree.
I'm not getting all the roots, what should I do?
If you aren't getting all the roots you should modify the constants from the file src/constants.rs
. You can DECREASE PARTITION_SIZE
and INCREASE ITERATIONS
. That will make the program slower, but with the right tweaks it can solve any polynomial.