Python 在其他多项式上求numpy多项式

Python 在其他多项式上求numpy多项式,python,numpy,polynomial-math,Python,Numpy,Polynomial Math,numpy.lib.polynomy.polyval允许您使用另一个多项式计算多项式: numpy.polyval(poly1d([1, 2, 3]), 2) Out[832]: 11 numpy.polyval(poly1d([1, 1]), poly1d([1, 1, 1])) Out[820]: poly1d([ 1., 1., 2.]) 比如说。如何使用numpy.polynomy.polynomy.polyval执行相同的操作 numpy.polynomial.polynomi

numpy.lib.polynomy.polyval允许您使用另一个多项式计算多项式:

numpy.polyval(poly1d([1, 2, 3]), 2)
Out[832]: 11

numpy.polyval(poly1d([1, 1]), poly1d([1, 1, 1]))
Out[820]: poly1d([ 1.,  1.,  2.])
比如说。如何使用numpy.polynomy.polynomy.polyval执行相同的操作

numpy.polynomial.polynomial.polyval(2, [3, 2, 1])
Out[833]: 11.0

numpy.polynomial.polynomial.polyval(Polynomial([1, 1, 1]), Polynomial([1, 1]))
Out[834]: Polynomial([ 1.,  1.], [-1.,  1.], [-1.,  1.])

最简单的方法是使用多项式类

In [1]: from numpy.polynomial import Polynomial as P

In [2]: p1 = P([1,1])

In [3]: p2 = P([1,1,1])

In [4]: p2(p1)
Out[4]: Polynomial([ 3.,  3.,  1.], [-1.,  1.], [-1.,  1.])

In [5]: p1(p2)
Out[5]: Polynomial([ 2.,  1.,  1.], [-1.,  1.], [-1.,  1.])
如果坚持使用polyval,则需要系数和多项式作为x

In [12]: import numpy.polynomial.polynomial as poly

In [13]: poly.polyval(p1, [1,1,1])
Out[13]: Polynomial([ 3.,  3.,  1.], [-1.,  1.], [-1.,  1.])

In [14]: poly.polyval(p2, [1,1])
Out[14]: Polynomial([ 2.,  1.,  1.], [-1.,  1.], [-1.,  1.])

为什么?不要太直截了当,但你有一个解决方案为什么这个问题?这两个函数有不同的行为是有原因的。@MrAlias:有两个不同的API,它们具有不同的多项式对象。我正在试着用新的。我发誓我试过了,但没用。也许我把系数顺序搞砸了。