NumPy - 多项式表示
NumPy 中的多项式表示
NumPy 中的多项式表示是指如何使用数组来表示和操作多项式。多项式是涉及变量幂和的数学表达式,例如 ax2 + bx + c,其中 a、b 和 c 为常数,x 为变量。
在 NumPy 中,多项式表示为数组,每个元素对应多项式的一个系数。
例如,多项式 3x2 + 2x + 1 可以表示为数组 [3, 2, 1],其中第一个元素表示 x2 的系数,第二个元素表示 x 的系数,第三个元素表示常数项。
NumPy 提供了 numpy.polynomial 模块来创建和使用多项式对象,这些模块允许您对多项式执行求值、微分和积分等运算。
创建多项式
NumPy 中的多项式可以使用 numpy.polynomial.Polynomial 类创建,该类用系数来表示多项式。
示例:创建多项式
在以下示例中,我们使用 NumPy 创建多项式 2x3 + 3x2 + x + 5 -
import numpy as np
from numpy.polynomial import Polynomial
# 定义多项式的系数
coefficients = [5, 1, 3, 2]
# 创建多项式
p = Polynomial(coefficients)
print("Polynomial:", p)
结果显示创建的多项式 -
多项式:5.0 + 1.0x + 3.0x + 2.0x
多项式求值
可以使用 Polynomial 类的 __call__ 方法或 numpy.polyval() 函数(另一种求多项式的方法)在特定点求多项式的值。
示例:求多项式的值
在下面的示例中,我们使用 __call__ 方法和 polyval() 函数在 x = 2 处求多项式 2x3 + 3x2 + x + 5 -
import numpy as np
from numpy.polynomial import Polynomial
# 定义多项式
# 2x^3 + 3x^2 + x + 5
p = Polynomial([5, 1, 3, 2])
# 使用 __call__ 方法计算 x = 2 处的多项式
value_call = p(2)
# 使用 numpy.polyval 计算 x = 2 处的多项式
value_evaluate = np.polyval(p.coef, 2)
print("使用 __call__ 方法计算 x = 2 处的多项式值:", value_call)
print("使用 numpy.polyval 计算 x = 2 处的多项式值:", value_evaluate)
结果显示了使用两种方法计算的 x = 2 处的多项式值−
使用 __call__ 函数计算 x = 2 处的多项式值:35.0 使用 numpy.polyval 函数计算 x = 2 处的多项式值:52.0
对多项式执行运算
NumPy 支持对多项式进行各种运算,例如加法、减法、乘法和除法。
您可以通过实例化 Polynomial 类并传递多项式的系数来创建多项式对象。 NumPy 会自动处理多项式系数的必要计算。
示例:多项式加法
在以下示例中,我们使用 + 运算符将两个多项式 2x2 + 3x + 1 和 x2 + 4x + 2 相加 -
import numpy as np
from numpy.polynomial import Polynomial
# 定义多项式
# 2x^2 + 3x + 1
p1 = Polynomial([1, 3, 2])
# x^2 + 4x + 2
p2 = Polynomial([2, 4, 1])
# 将多项式相加
result_add = p1 + p2
print("多项式加法结果:", result_add)
结果显示两个多项式的和 -
多项式加法结果:3.0 + 7.0x + 3.0x
示例:多项式乘法
这里,我们使用 * 运算符将两个多项式 2x + 1 和 x + 2 相乘 -
import numpy as np
from numpy.polynomial import Polynomial
# 定义多项式
# 2x + 1
p1 = Polynomial([1, 2])
# x + 2
p2 = Polynomial([2, 1])
# 多项式相乘
result_multiply = p1 * p2
print("多项式乘法结果:", result_multiply)
结果显示两个多项式的乘积 −
多项式乘法结果:2.0 + 5.0x + 2.0x
示例:多项式微分
在本例中,我们求多项式 2x3 + 的导数3x2 + x + 5 −
import numpy as np
from numpy.polynomial import Polynomial
# 定义多项式
# 2x^3 + 3x^2 + x + 5
p = Polynomial([5, 1, 3, 2])
# 对多项式求导
result_diff = p.deriv()
print("多项式微分结果:", result_diff)
结果显示原始多项式的一阶导数 −
多项式微分结果:1.0 + 6.0x + 6.0x
将多项式拟合到数据
将多项式拟合到数据涉及查找与给定数据点集最匹配的多项式。在 NumPy 中,这可以通过使用 numpy.fit() 函数来实现,该函数通过最小化误差,将指定次数的多项式拟合到数据中。
拟合结果是一个近似于数据的多项式,可用于曲线拟合或趋势分析等任务。
示例:将多项式拟合到数据中
在以下示例中,我们将一个 2 次多项式拟合到一组数据点中 -
import numpy as np
from numpy.polynomial import Polynomial
# 定义数据点
x = np.array([0, 1, 2, 3, 4])
y = np.array([1, 2, 0, 2, 1])
# 将 2 次多项式拟合到数据中
p_fit = Polynomial.fit(x, y, deg=2)
print("拟合多项式:", p_fit)
结果显示拟合的多项式 −
拟合多项式:1.2 - (7.02166694e-17)x + (1.22883961e-16)x

