numpy.polyval#

numpy.polyval(p, x)[源代码]#

在特定值处评估 polynomial .

备注

这是旧多项式 API 的一部分. 从 1.4 版本开始,优先使用在 numpy.polynomial 中定义的新多项式 API. 差异的总结可以在 transition guide 中找到.

如果 p 的长度为 N,则此函数返回值:

p[0]*x**(N-1) + p[1]*x**(N-2) + ... + p[N-2]*x + p[N-1]

如果 x 是一个序列,则为 x 的每个元素返回 p(x) .如果 x 是另一个 polynomial,则返回复合 polynomial p(x(t)) .

参数:
p类数组或 poly1d 对象

从最高阶到常数项的 polynomial 系数的 1D 数组(包括等于零的系数),或 poly1d 的实例.

x类数组或 poly1d 对象

一个数字,一个数字数组或 poly1d 的一个实例,用于评估 p .

返回:
valuesndarray 或 poly1d

如果 x 是 poly1d 实例,则结果是两个 polynomial 的组合,即 xp 中被 "替换" 并且返回简化的结果.此外, x 的类型 - array_like 或 poly1d - 控制输出的类型:x array_like => values array_like, x 是一个 poly1d 对象 => values 也是.

参见

poly1d

一个多项式类.

注释

使用霍纳方案 [1] 来评估多项式.即便如此,对于高阶多项式,由于舍入误差,值可能不准确.谨慎使用.

如果 xndarray 的子类型,则返回值将是相同的类型.

参考文献

[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])