numpy.polynomial.polynomial.polyvalfromroots#

polynomial.polynomial.polyvalfromroots(x, r, tensor=True)[source]#

在点 x 处计算由其根定义的多项式。

如果 r 的长度为 N,则此函数返回以下值

\[p(x) = \prod_{n=1}^{N} (x - r_n)\]

参数 x 仅在它是元组或列表时才会转换为数组,否则将被视为标量。在这两种情况下,x 或其元素都必须支持与自身以及与 r 的元素之间的乘法和加法运算。

如果 r 是一个一维数组,则 p(x) 将与 x 具有相同的形状。如果 r 是多维的,则结果的形状取决于 tensor 的值。如果 tensorTrue,则形状将为 r.shape[1:] + x.shape;也就是说,每个多项式都在 x 的每个值处计算。如果 tensorFalse,则形状将为 r.shape[1:];也就是说,每个多项式仅针对 x 的相应广播值进行计算。请注意,标量的形状为 (, )。

版本 1.12 中新增。

参数:
xarray_like,兼容对象

如果 x 是列表或元组,则将其转换为 ndarray,否则保持不变并将其视为标量。无论哪种情况,x 或其元素都必须支持与自身以及与 r 的元素之间的加法和乘法运算。

rarray_like

根数组。如果 r 是多维的,则第一个索引是根索引,而其余索引枚举多个多项式。例如,在二维情况下,每个多项式的根可以认为存储在 r 的列中。

tensor布尔值,可选

如果为 True,则根数组的形状将在右侧扩展为 1,每个 x 的维度一个。标量对此操作的维度为 0。结果是,r 中的每个系数列都针对 x 的每个元素进行计算。如果为 False,则在计算过程中 x 将广播到 r 的列上。当 r 是多维时,此关键字很有用。默认值为 True。

返回:
valuesndarray,兼容对象

返回的数组的形状如上所述。

示例

>>> from numpy.polynomial.polynomial import polyvalfromroots
>>> polyvalfromroots(1, [1, 2, 3])
0.0
>>> a = np.arange(4).reshape(2, 2)
>>> a
array([[0, 1],
       [2, 3]])
>>> polyvalfromroots(a, [-1, 0, 1])
array([[-0.,   0.],
       [ 6.,  24.]])
>>> r = np.arange(-2, 2).reshape(2,2)  # multidimensional coefficients
>>> r # each column of r defines one polynomial
array([[-2, -1],
       [ 0,  1]])
>>> b = [-2, 1]
>>> polyvalfromroots(b, r, tensor=True)
array([[-0.,  3.],
       [ 3., 0.]])
>>> polyvalfromroots(b, r, tensor=False)
array([-0.,  0.])