📜  Python中的 numpy.poly1d()(1)

📅  最后修改于: 2023-12-03 15:04:33.610000             🧑  作者: Mango

Python中的 numpy.poly1d()

在科学计算中,我们经常需要对多项式进行运算。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()函数是用来创建、操作和评估多项式的一个方便工具。我们可以使用它来求导、求值、除法和二次乘积等等。