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才会转换为数组,否则将其视为标量。无论哪种情况,x或其元素都必须支持自身之间的乘法和加法,以及与r的元素之间的乘法和加法。
如果r是一维数组,则
p(x)
的形状将与x相同。如果r是多维的,则结果的形状取决于tensor的值。如果tensor为True
,则形状将为 r.shape[1:] + x.shape;也就是说,每个多项式都在x的每个值处计算。如果tensor为False
,则形状将为 r.shape[1:];也就是说,每个多项式仅针对x对应的广播值进行计算。请注意,标量的形状为 (,)。- 参数:
- 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.])