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 是一个序列,则返回 p(x) 的每个元素的值。如果 x 是另一个多项式,则返回复合多项式 p(x(t))

参数:
p类数组对象或 poly1d 对象

一维多项式系数数组(包括等于零的系数),从最高次幂到常数项,或者 poly1d 实例。

x类数组对象或 poly1d 对象

用于计算 p 值的数字、数字数组或 poly1d 实例。

返回:
valuesndarray 或 poly1d

如果 x 是 poly1d 实例,则结果是两个多项式的复合,即 x 被“代入” p 中,并返回简化结果。此外,x 的类型——类数组对象或 poly1d 对象——决定输出类型:x 为类数组对象 => values 为类数组对象,x 为 poly1d 对象 => values 也为 poly1d 对象。

参见

poly1d

一个多项式类。

备注

使用 Horner 方案 [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])