📅  最后修改于: 2023-12-03 15:04:33.610000             🧑  作者: Mango
在科学计算中,我们经常需要对多项式进行运算。Python中的numpy库中提供了一种方便的方式来创建、操作和评估多项式,即numpy.poly1d()
函数。
numpy.poly1d()
numpy.poly1d()
是用来创建一维多项式的函数。它接受一个包含多项式系数的数组,然后返回一个多项式函数。这个函数可以用来求导、求值、除法和二次乘积等等。
在创建多项式时,多项式系数需要按照从高次到低次的顺序排列,也就是说,第一个元素是最高次项的系数。例如,对于多项式$5x^3-2x^2+3x-1$,系数数组表示为$[5,-2,3,-1]$。
下面是一个例子:
import numpy as np
coeff = [5, -2, 3, -1]
p = np.poly1d(coeff)
print(p)
输出:
3 2
5 x - 2 x + 3 x - 1
这里,我们创建一个名为p
的多项式函数。print(p)
的输出类似于人类能够读懂的形式。
一旦我们有了多项式函数,我们就可以轻松地进行各种运算。下面是一些例子:
使用p.deriv()
函数可以求多项式的一阶导数。例如,对于上面的多项式,它的导数为$15x^2-4x+3$。我们可以这样求导:
dp = p.deriv()
print(dp)
输出:
2
15 x - 4 x + 3
使用p(x)
可以计算多项式在$x$处的值。例如,对于上面的多项式,在$x=2$处它的值为$29$。我们可以这样求值:
x = 2
y = p(x)
print(y)
输出:
29
使用p1/p2
可以进行多项式除法。例如,我们希望计算多项式$7x^2+5x-2$除以多项式$3x-1$的结果,我们可以这样:
p1 = np.poly1d([7, 5, -2])
p2 = np.poly1d([3, -1])
quo, rem = np.polydiv(p1, p2)
print(quo)
输出:
2
2 x + 7 x - 19
这里,quo
表示商,rem
表示余数。
对于两个多项式$p(x)$和$q(x)$,它们的二次乘积定义为:
$$(p \cdot q)(x) = \int p(t)q(x-t)dt$$
使用numpy.polymul()
函数可以计算多项式的乘积。例如,我们希望计算多项式$(2x^2-1)(3x^2+4)$的二次乘积,我们可以这样:
p1 = np.poly1d([2, 0, -1])
p2 = np.poly1d([3, 0, 4])
pq = np.polymul(p1.coeffs, p2.coeffs)
pq = np.poly1d(pq)
print(pq)
输出:
4 2
6 x - 1 x - 4
在科学计算中,numpy.poly1d()
函数是用来创建、操作和评估多项式的一个方便工具。我们可以使用它来求导、求值、除法和二次乘积等等。