numpy.poly#

numpy.poly(seq_of_zeros)[источник]#

Найти коэффициенты полинома с заданной последовательностью корней.

Примечание

Это часть старого API полиномов. Начиная с версии 1.4, новый API полиномов, определенный в numpy.polynomial предпочтительнее. Сводку различий можно найти в руководство по переходу.

Возвращает коэффициенты полинома, старший коэффициент которого равен единице, для заданной последовательности нулей (кратные корни должны быть включены в последовательность столько раз, какова их кратность; см. Примеры). Квадратная матрица (или массив, который будет рассматриваться как матрица) также может быть задана, в этом случае возвращаются коэффициенты характеристического полинома матрицы.

Параметры:
seq_of_zerosarray_like, форма (N,) или (N, N)

Последовательность корней полинома или квадратный массив или объект матрицы.

Возвращает:
cndarray

Одномерный массив полиномиальных коэффициентов от старшей к младшей степени:

c[0] * x**(N) + c[1] * x**(N-1) + ... + c[N-1] * x + c[N] где c[0] всегда равно 1.

Вызывает:
ValueError

Если вход имеет неправильную форму (вход должен быть одномерным или квадратным двумерным массивом).

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

polyval

Вычисление значений полинома.

roots

Вернуть корни полинома.

polyfit

Полиномиальная аппроксимация методом наименьших квадратов.

poly1d

Одномерный полиномиальный класс.

Примечания

Задание корней полинома всё ещё оставляет одну степень свободы, обычно представленную неопределённым старшим коэффициентом. [1] В случае этой функции, этот коэффициент - первый в возвращаемом массиве - всегда принимается за единицу. (Если по какой-то причине у вас есть другая точка, единственный автоматический способ в настоящее время использовать эту информацию - это использовать polyfit.)

Характеристический полином, \(p_a(t)\), из n-на-n матрица A задается формулой

\(p_a(t) = \mathrm{det}(t\, \mathbf{I} - \mathbf{A})\),

где Я является n-на-n единичная матрица. [2]

Ссылки

[1]

М. Салливан и М. Салливан, III, «Алгебра и тригонометрия, улучшенные с помощью графических утилит», Prentice-Hall, стр. 318, 1996.

[2]

Г. Странг, «Линейная алгебра и её приложения, 2-е издание», Academic Press, стр. 182, 1980.

Примеры

Дана последовательность нулей полинома:

>>> import numpy as np
>>> np.poly((0, 0, 0)) # Multiple root example
array([1., 0., 0., 0.])

Приведённая выше строка представляет z**3 + 0*z**2 + 0*z + 0.

>>> np.poly((-1./2, 0, 1./2))
array([ 1.  ,  0.  , -0.25,  0.  ])

Строка выше представляет z**3 - z/4

>>> np.poly((np.random.random(1)[0], 0, np.random.random(1)[0]))
array([ 1.        , -0.77086955,  0.08618131,  0.        ]) # random

Для квадратного объекта массива:

>>> P = np.array([[0, 1./3], [-1./2, 0]])
>>> np.poly(P)
array([1.        , 0.        , 0.16666667])

Обратите внимание, что во всех случаях старший коэффициент всегда равен 1.