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
Если вход имеет неправильную форму (вход должен быть одномерным или квадратным двумерным массивом).
Смотрите также
Примечания
Задание корней полинома всё ещё оставляет одну степень свободы, обычно представленную неопределённым старшим коэффициентом. [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.