用NumPy查找多项式的根

  • Post category:Python

下面是使用 NumPy 查找多项式的根的完整攻略。

NumPy 查找多项式的根

1. 导入 NumPy

首先,需要导入 NumPy 库,使用以下代码行:

import numpy as np

2. 定义多项式

然后,需要定义多项式。可以使用 NumPy 的 poly1d 函数来创建一个多项式函数对象,例如:

p = np.poly1d([1, -5, 6])

这个代码行创建了一个二次多项式 p(x) = x^2 – 5x + 6。

3. 查找多项式的根

现在,可以使用 NumPy 的 roots 函数来查找多项式的根,例如:

roots = np.roots(p)

这个代码行会返回一个数组,包含多项式的所有根。

4. 示例一

接下来,看一个示例来说明上述步骤。例如,需要找到多项式 f(x) = x^3 – 6x^2 + 11x – 6 的根。

首先,定义多项式:

f = np.poly1d([1, -6, 11, -6])

然后,查找多项式的根:

roots = np.roots(f)
print(roots)

输出结果为:

[1. 2. 3.]

这意味着多项式 f(x) 的根是 x = 1, x = 2 和 x = 3。

5. 示例二

再看一个示例来进一步说明如何使用 NumPy 查找多项式的根。假设需要找到多项式 g(x) = x^4 – 4x^3 + 6x^2 – 4x + 1 的根。

首先,定义多项式:

g = np.poly1d([1, -4, 6, -4, 1])

然后,查找多项式的根:

roots = np.roots(g)
print(roots)

输出结果为:

[0.73205081+0.00000000e+00j 0.26794919+0.00000000e+00j
 1.00000000+1.71984499e-16j 1.00000000-1.71984499e-16j]

这意味着多项式 g(x) 的根是 x = 0.73205081, x = 0.26794919, x = 1 + 1.71984499e-16j 和 x = 1 – 1.71984499e-16j。

需要注意的是,使用 NumPy 的 roots 函数时,如果多项式有复数根,那么返回的数组中会包含这些复数根及其复共轭根。

以上是使用 NumPy 查找多项式的根的完整攻略,希望可以帮助到你。