使用 NumPy 找到多项式的根
在本文中,让我们讨论如何找到 NumPy 数组的多项式的根。可以使用各种方法找到它,让我们详细查看它们。
方法一:使用 np.roots()
此函数返回系数在 p 中给出的多项式的根。多项式的系数将按相应的顺序放入一个数组中。
例如,如果多项式是x 2 +3x + 1 ,则数组将为 [1, 3, 1]
Syntax : numpy.roots(p)
Parameters :
p : [array_like] Rank-1 array of polynomial coefficients.
Return : [ndarray] An array containing the roots of the polynomial.
让我们看一些例子:
示例 1:求多项式 x 2 +2x + 1 的根
Python3
# import numpy library
import numpy as np
# Enter the coefficients of the poly in the array
coeff = [1, 2, 1]
print(np.roots(coeff))
Python3
# import numpy library
import numpy as np
# Enter the coefficients of the poly
# in the array
coeff = [1, 3, 2, 1]
print(np.roots(coeff))
Python3
# import numpy library
import numpy as np
# enter the coefficients of poly
# in the array
p = np.poly1d([1, 2, 1])
# multiplying by r(or roots) to
# get the roots
root_of_poly = p.r
print(root_of_poly)
Python3
# import numpy library
import numpy as np
# enter the coefficients of poly
# in the array
p = np.poly1d([1, 3, 2, 1])
# multiplying by r(or roots) to get
# the roots
root_of_poly = p.r
print(root_of_poly)
输出:
[-1. -1.]
示例 2:求多项式 x 3 +3 x 2 + 2x +1 的根
Python3
# import numpy library
import numpy as np
# Enter the coefficients of the poly
# in the array
coeff = [1, 3, 2, 1]
print(np.roots(coeff))
输出:
[-2.32471796+0.j -0.33764102+0.56227951j -0.33764102-0.56227951j]
方法 2:使用 np.poly1D()
该函数有助于定义多项式函数。它使得在多项式上应用“自然运算”变得容易。多项式的系数将按相应的顺序放入一个数组中。
例如,对于多项式 x2 +3x + 1,数组将为 [1, 3, 1]
方法:
- 在数组上应用函数np.poly1D() 并将其存储在变量中。
- 通过将变量乘以根或 r(内置关键字)来查找根并打印结果以获得给定多项式的根
Syntax: numpy.poly1d(arr, root, var):
让我们看一些例子:
示例 1:求多项式 x 2 +2x + 1 的根
Python3
# import numpy library
import numpy as np
# enter the coefficients of poly
# in the array
p = np.poly1d([1, 2, 1])
# multiplying by r(or roots) to
# get the roots
root_of_poly = p.r
print(root_of_poly)
输出:
[-1. -1.]
示例 2:求多项式 x 3 +3 x 2 + 2x +1 的根
Python3
# import numpy library
import numpy as np
# enter the coefficients of poly
# in the array
p = np.poly1d([1, 3, 2, 1])
# multiplying by r(or roots) to get
# the roots
root_of_poly = p.r
print(root_of_poly)
输出:
[-2.32471796+0.j -0.33764102+0.56227951j -0.33764102-0.56227951j]