numpy.polynomial.polynomial.polyvalfromroots#

polynomial.polynomial.polyvalfromroots(x, r, тензор=True)[источник]#

Вычислить полином, заданный его корнями, в точках x.

Если r имеет длину N, эта функция возвращает значение

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

Параметр x преобразуется в массив только если это кортеж или список, иначе обрабатывается как скаляр. В любом случае, либо x или его элементы должны поддерживать умножение и сложение как с самими собой, так и с элементами r.

Если r является одномерным массивом, тогда p(x) будет иметь ту же форму, что и x. Если r является многомерным, то форма результата зависит от значения тензор. Если тензор является True форма будет r.shape[1:] + x.shape; то есть каждый полином оценивается при каждом значении x. Если тензор является False, форма будет r.shape[1:]; то есть каждый полином вычисляется только для соответствующего транслированного значения x. Обратите внимание, что скаляры имеют форму (,).

Параметры:
xarray_like, совместимый объект

Если x является списком или кортежем, он преобразуется в ndarray, в противном случае остается неизменным и обрабатывается как скаляр. В любом случае, x или его элементы должны поддерживать сложение и умножение с собой и с элементами r.

rarray_like

Массив корней. Если r если многомерный, первый индекс — это корневой индекс, а остальные индексы перечисляют несколько полиномов. Например, в двумерном случае корни каждого полинома можно считать хранящимися в столбцах r.

тензорлогический, необязательный

Если True, форма массива корней расширяется единицами справа, по одной для каждого измерения x. Скаляры имеют размерность 0 для этого действия. Результат заключается в том, что каждый столбец коэффициентов в r вычисляется для каждого элемента x. Если False, x транслируется по столбцам r для оценки. Этот ключевой аргумент полезен, когда r является многомерным. Значение по умолчанию — True.

Возвращает:
valuesndarray, совместимый объект

Форма возвращаемого массива описана выше.

Смотрите также

polyroots, polyfromroots, polyval

Примеры

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