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))
。- 参数:
- parray_like 或 poly1d 对象
一维多项式系数数组(包括等于零的系数),从最高次幂到常数项,或 poly1d 的实例。
- xarray_like 或 poly1d 对象
要计算 p 的数字、数字数组或 poly1d 实例。
- 返回值:
- 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 和 K. A. Hirsch(英译版),《数学手册》,纽约,Van Nostrand Reinhold Co.,1985 年,第 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])