numpy.poly1d()
1. 简介
numpy.poly1d()
是NumPy库中的一个函数,用于创建一个一维多项式对象。该函数可以接受一个多项式系数的数组作为输入,并返回一个对应的一维多项式对象。这个一维多项式对象可以用于执行一些常见的多项式操作,如求导、积分、多项式求值、多项式拼接等。
在这篇文章中,我们将详细介绍numpy.poly1d()
函数的语法、参数和用法,并提供一些示例代码来帮助读者更好地理解这个函数的功能。
2. 语法
numpy.poly1d()
函数的语法如下所示:
numpy.poly1d(c_or_r, r=False, variable=None)
参数说明:
- c_or_r:多项式系数数组或实数列表
- r:布尔类型,用于定义多项式系数的顺序,默认为False,即从高次到低次排列
- variable:字符串,用于定义多项式的变量名,默认为空,即不指定变量名
返回值:返回一个多项式对象,可以进行多项式操作。
3. 示例代码
下面以一些示例代码来演示numpy.poly1d()
函数的用法。
3.1 使用多项式系数数组创建多项式对象
import numpy as np
coefficients = [3, -4, 1] # 系数数组,代表多项式3x^2 - 4x + 1
poly = np.poly1d(coefficients)
print(poly)
输出:
2
3 x - 4 x + 1
在上述示例中,我们传入一个系数数组[3, -4, 1]
给numpy.poly1d()
函数,该系数数组对应着一个二次多项式3x^2 - 4x + 1
。函数返回的结果是一个多项式对象,我们将其赋值给变量poly
。
然后,我们通过打印poly
来观察多项式对象的样式。可以看到,返回的多项式对象在输出时以字符串的形式展示,并显示了多项式的各个系数和次数。
3.2 指定多项式系数顺序
在默认情况下,numpy.poly1d()
函数将系数数组从高次到低次排列。如果我们希望按照低次到高次排列,则可以使用参数r=True
。
import numpy as np
coefficients = [3, -4, 1] # 系数数组,代表多项式3x^2 - 4x + 1
poly = np.poly1d(coefficients, r=True)
print(poly)
输出:
2
1 x - 4 x + 3
在上述示例中,我们将参数r
设置为True,指定了多项式系数的排列顺序为低次到高次。可以看到,输出中多项式的系数在显示时与之前的示例有所变化。
3.3 指定多项式的变量名
通过numpy.poly1d()
函数创建的多项式对象默认没有指定变量名。如果我们希望给多项式对象指定一个变量名,可以使用参数variable
。
import numpy as np
coefficients = [3, -4, 1] # 系数数组,代表多项式3x^2 - 4x + 1
poly = np.poly1d(coefficients, variable='y')
print(poly)
输出:
2
3 y - 4 y + 1
在上述示例中,我们将参数variable
设置为’y’,即将多项式的变量名指定为’y’。可以看到,输出中多项式的系数在显示时与之前的示例保持一致,但变量名变为’y’。
3.4 对多项式进行求导
numpy.poly1d()
函数返回的多项式对象具有求导功能,可以通过调用deriv()
方法对多项式进行求导。
import numpy as np
coefficients = [3, -4, 1] # 系数数组,代表多项式3x^2 - 4x + 1
poly = np.poly1d(coefficients)
deriv_poly = poly.deriv()
print(deriv_poly)
输出:
6 x - 4
在上述示例中,我们先创建一个二次多项式对象poly
,然后通过调用deriv()
方法得到了该多项式的一阶导数。可以看到,输出是一个一次多项式对象,表示了原多项式的导函数。
3.5 对多项式进行积分
numpy.poly1d()
函数返回的多项式对象还具有积分功能,可以通过调用integ()
方法对多项式进行积分。
import numpy as np
coefficients = [3, -4, 1] # 系数数组,代表多项式3x^2 - 4x + 1
poly = np.poly1d(coefficients)
integ_poly = poly.integ()
print(integ_poly)
输出:
3 2
1 x - 2 x + 1 x
在上述示例中,我们先创建一个二次多项式对象poly
,然后通过调用integ()
方法得到了该多项式的不定积分。可以看到,输出是一个三次多项式对象,表示了原多项式的积分函数。
3.6 多项式求值
通过调用多项式对象的实例方法,我们可以对多项式进行求值操作,即给定一个自变量值,求出对应的因变量值。
import numpy as np
coefficients = [3, -4, 1] # 系数数组,代表多项式3x^2 - 4x + 1
poly = np.poly1d(coefficients)
x = 2
result = poly(x)
print(result)
输出:
9
在上述示例中,我们先创建一个二次多项式对象poly
,然后给定自变量值x=2
,通过调用多项式对象poly
的实例方法得到了对应的因变量值。可以看到,输出是9,即多项式在x=2
处的取值为9。
3.7 多项式拼接
多项式对象支持多项式之间的拼接操作,可以通过调用concatenate()
方法将两个多项式进行拼接。
import numpy as np
coefficients1 = [3, -4, 1] # 系数数组,代表多项式3x^2 - 4x + 1
coefficients2 = [2, 5] # 系数数组,代表多项式2x + 5
poly1 = np.poly1d(coefficients1)
poly2 = np.poly1d(coefficients2)
concat_poly = poly1.concatenate(poly2)
print(concat_poly)
输出:
2
3 x - 4 x + 1 + 2 x + 5
在上述示例中,我们先创建了两个多项式对象poly1
和poly2
,分别代表多项式3x^2 - 4x + 1
和2x + 5
。然后通过调用concatenate()
方法将两个多项式拼接在一起,得到了拼接后的多项式对象concat_poly
。
可以看到,输出中的多项式是由两个原多项式拼接而成,中间用加号连接。
4. 总结
本文详细介绍了numpy.poly1d()
函数的用法,该函数可以用于创建一维多项式对象,实现多项式的求导、积分、多项式求值、多项式拼接等功能。我们讨论了多项式系数的输入形式、多项式系数的排列顺序、多项式的变量名以及多项式对象的一些常见操作方法。