numpy.polyval#
- numpy.polyval(p, x)[源代码]#
在特定值处评估多项式.
备注
这部分是旧的多项式API的一部分.自版本1.4起,新的多项式API定义在
numpy.polynomial
中是首选.差异的总结可以在 过渡指南 中找到.如果 p 的长度为 N,此函数返回值:
p[0]*x**(N-1) + p[1]*x**(N-2) + ... + p[N-2]*x + p[N-1]
如果 x 是一个序列,那么
p(x)
会返回x
的每个元素.如果 x 是另一个多项式,那么会返回复合多项式p(x(t))
.- 参数:
- p类似数组或 poly1d 对象
多项式系数的一维数组(包括等于零的系数)从最高次到常数项,或者是一个 poly1d 的实例.
- x类似数组或 poly1d 对象
一个数字、一个数字数组或一个 poly1d 实例,在 p 处进行评估.
- 返回:
- valuesndarray 或 poly1d
如果 x 是一个 poly1d 实例,结果是两个多项式的组合,即 x 在 p 中被”替换”,并且简化的结果被返回.此外,`x` 的类型 - array_like 或 poly1d - 决定了输出的类型:x 是 array_like => values 是 array_like,`x` 是 poly1d 对象 => values 也是.
参见
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])