2 个版本 (1 个稳定版)
1.0.0 | 2024年1月4日 |
---|---|
0.1.0 | 2023年1月6日 |
#420 在 数学
17KB
372 行
polynomial-roots
以毫秒级速度找到巨大多项式的实根
如何编译?
cargo build --release
如何使用?
系数按升序排列,即:$x^0 + x^1 + x^2 + x^3 + \cdots$
系数以空格分隔传递,因此要解决多项式 $3 - 9x + x^3$,需要按以下方式运行程序
$ cargo install polynomial-roots
$ polynomial-roots
3 -9 0 1
{ -3.154523; 0.33760893; 2.816914; }
(注意:不要忘记零系数)
它如何工作?
使用线性公式($\dfrac{-b}{a}$)、二次公式($\dfrac{-b \pm \sqrt{b^2 - 4 a c}}{2 a}$)或 弦截法 在 柯西界 上找到根。它可以解决任何次数的多项式。
我没有得到所有的根,我该怎么办?
如果你没有得到所有的根,你应该修改文件 src/constants.rs
中的常量。你可以减少 PARTITION_SIZE
并增加 ITERATIONS
。这将使程序变慢,但经过适当的调整,它可以解决任何多项式。