用NumPy查找多项式的根

  • Post category:Python

要使用NumPy库查找多项式的根,需要进行以下步骤:

1. 导入NumPy库

使用以下命令导入NumPy库:

import numpy as np

2. 创建多项式对象

使用NumPy库中的poly1d()函数创建多项式对象。例如,创建一个三次多项式:

p = np.poly1d([1, -2, -3, 2])

这个多项式的系数为1,-2,-3和2,对应的多项式为$x^3 – 2x^2 – 3x + 2$。

3. 查找多项式的根

使用NumPy库中的roots()函数查找多项式的根。例如,要查找上面创建的多项式的根,可以使用以下命令:

r = np.roots(p)
print(r)

输出为:

[ 2.          1.          0.99999993]

这个多项式有三个根,分别为2,1和0.99999993。注意到第三个根略微不同于1,这是由于小数点精度问题造成的。我们可以使用round()函数将其四舍五入为1。

第二个示例:

假设我们要查找$2x^3+3x^2-x+5$的根,我们可以使用以下代码:

p = np.poly1d([2, 3, -1, 5])
r = np.roots(p)
print(r)

输出结果为:

[-2.69624343  0.24467932  0.09256411]

这个多项式有三个根,分别为-2.6962,0.2447和0.0926。

需要注意的是,NumPy库中的roots()函数只能找到多项式的复根,如果要找到实根,则需要使用其他数值计算库,或者自己手写实现。