numpy.polyval#
- numpy.polyval(p, x)[source]#
在特定值处评估多项式。
注意
这是旧版多项式 API 的一部分。自 1.4 版以来,定义于
numpy.polynomial
的新版多项式 API 更受推荐。可以在过渡指南中找到差异的摘要。如果 p 的长度为 N,则此函数返回值为
p[0]*x**(N-1) + p[1]*x**(N-2) + ... + p[N-2]*x + p[N-1]
如果 x 是一个序列,则对
x
的每个元素返回p(x)
。如果 x 是另一个多项式,则返回复合多项式p(x(t))
。- 参数:
- p类似数组(array_like)或 poly1d 对象
从最高次项到常数项的多项式系数一维数组(包括为零的系数),或 poly1d 的实例。
- x类似数组(array_like)或 poly1d 对象
一个数字、一个数字数组或 poly1d 的实例,用于评估 p。
- 返回:
- valuesndarray 或 poly1d
如果 x 是一个 poly1d 实例,则结果是两个多项式的复合,即 x 被“代入” p 中并返回简化结果。此外,x 的类型(类似数组 array_like 或 poly1d)决定了输出的类型:x 为类似数组 array_like => values 为类似数组 array_like;x 为 poly1d 对象 => values 也为 poly1d。
另请参阅
poly1d
一个多项式类。
注释
霍纳法则 [1] 用于评估多项式。尽管如此,对于高次多项式,由于舍入误差,计算结果可能不准确。请谨慎使用。
如果 x 是
ndarray
的子类型,则返回值的类型将相同。参考文献
[1]I. N. Bronshtein, K. A. Semendyayev, and K. A. Hirsch (Eng. trans. Ed.), Handbook of Mathematics, New York, Van Nostrand Reinhold Co., 1985, pg. 720.
示例
>>> import numpy as np >>> np.polyval([3,0,1], 5) # 3 * 5**2 + 0 * 5**1 + 1 76 >>> np.polyval([3,0,1], np.poly1d(5)) poly1d([76]) >>> np.polyval(np.poly1d([3,0,1]), 5) 76 >>> np.polyval(np.poly1d([3,0,1]), np.poly1d(5)) poly1d([76])