NumPy - 求多项式的根
在 NumPy 中求多项式的根
求多项式的根意味着确定多项式等于零时 x 的值。在 NumPy 中,你可以使用 numpy.roots() 函数求多项式的根。
根是各种数学应用中的基础,例如求解方程、优化问题,以及在信号处理或数值分析中分析多项式的行为。
numpy.roots() 函数
numpy.roots() 函数将多项式的系数作为输入,并返回多项式的根。
多项式以其系数表示,从最高幂开始,到常数项结束。该函数用于求多项式的所有根,包括实数根和复数根。
示例
在本例中,我们使用 NumPy 中的 roots() 函数求由公式定义的多项式的根 -
import numpy as np # 定义多项式的系数 1x - 6x + 11x - 6 coefficients = np.array([1, -6, 11, -6]) # 使用 numpy.roots 求多项式的根 roots = np.roots(coefficients) print("多项式的根:", roots)
给定多项式的根求法如下 -
根多项式:[3. 2. 1.]
实根和复根
NumPy 可以处理实根和复根。如果多项式有复根,numpy.roots() 会将其作为复数返回。例如,没有实根的二次多项式的根将显示为复数。
示例:求复数根
在本例中,我们使用 numpy.roots() 函数求二次多项式的根 -
import numpy as np # 定义多项式 x + 1 的系数 coefficients_complex = np.array([1, 0, 1]) # 使用 numpy.roots 求多项式的根 roots_complex = np.roots(coefficients_complex) print("复数多项式的根:", roots_complex)
求复数多项式根的结果如下所示 -
复数多项式的根:[-0.+1.j 0.-1.j]
验证根
找到根后,验证它们是否满足原多项式方程通常很有用。这可以通过将根代回多项式并检查结果是否接近零来实现。
示例
在此示例中,我们通过计算多项式的根来验证多项式的根 -
import numpy as np # 定义多项式系数 coefficients = np.array([1, -6, 11, -6]) # 求多项式的根 roots = np.roots(coefficients) # 通过计算多项式的根来验证根 verification = np.polyval(coefficients, roots) print("验证结果:", validation)
验证结果(所有根都应接近于零)为 -
验证结果:[3.55271368e-15 2.66453526e-15 0.00000000e+00]
处理高次多项式
NumPy roots() 函数能够求任意次数的多项式的根。随着多项式次数的增加,根的数量也会增加。该函数将返回给定多项式的所有根,包括实数根和复数根。
示例
在本例中,我们使用 roots() 函数求一个五次多项式的根 -
import numpy as np # 定义多项式的系数 1x - 3x + 5x - 7x + 11x - 13 coefficients_high_degree = np.array([1, -3, 5, -7, 11, -13]) # 使用 numpy.roots 求多项式的根 roots_high_degree = np.roots(coefficients_high_degree) print("高次多项式的根:", roots_high_degree)
求根的结果高次多项式的根如下:-
高次多项式的根: [-0.56466348+1.42799478j -0.56466348-1.42799478j 1.18589358+1.31548183j 1.18589358-1.31548183j 1.7575398 +0.j ]