poly

Полином с заданными корнями или характеристический полином

Синтаксис

Описание

пример

p = poly(r), где r является вектором, возвращает коэффициенты полинома, корни которого являются элементами r.

пример

p = poly(A), где A является n-by- n матрица, возвращает n+1 коэффициенты характеристического полинома матрицы, det(λIA).

Примеры

свернуть все

Вычислим собственные значения матрицы, A.

A = [1 8 -10; -4 2 4; -5 2 8]
A = 3×3

     1     8   -10
    -4     2     4
    -5     2     8

e = eig(A)
e = 3×1 complex

  11.6219 + 0.0000i
  -0.3110 + 2.6704i
  -0.3110 - 2.6704i

Поскольку собственные значения в e являются корнями характеристического полинома A, использовать poly для определения полинома характеристики из значений в e.

p = poly(e)
p = 1×4

    1.0000  -11.0000   -0.0000  -84.0000

Использование poly чтобы вычислить характеристический полином матрицы, A.

A = [1 2 3; 4 5 6; 7 8 0]
A = 3×3

     1     2     3
     4     5     6
     7     8     0

p = poly(A)
p = 1×4

    1.0000   -6.0000  -72.0000  -27.0000

Вычислим корни p использование roots. Корни характеристического полинома являются собственными значениями матрицы A.

r = roots(p)
r = 3×1

   12.1229
   -5.7345
   -0.3884

Входные параметры

свернуть все

Полиномиальные корни, заданные как вектор.

Пример: poly([2 -3])

Пример: poly([2 -2 3 -3])

Пример: poly(roots(k))

Пример: poly(eig(A))

Типы данных: single | double
Поддержка комплексного числа: Да

Входная матрица.

Пример: poly([0 -1; 1 0])

Типы данных: single | double
Поддержка комплексного числа: Да

Выходные аргументы

свернуть все

Полиномиальные коэффициенты, возвращенные как вектор-строка.

  • Если вход квадратный n-by- n матрица, A, затем p содержит коэффициенты для характеристического полинома A.

  • Если вход является вектором корней, r, затем p содержит коэффициенты для полинома, корни которого в r.

В каждом случае, n+1 коэффициенты в p опишите полином

p1xn+p2xn1+...+pnx+pn+1.

Совет

  • Для векторов, r = roots(p) и p = poly(r) являются обратными функциями друг друга, вплоть до ошибки округления, упорядоченного расположения и масштабирования.

Алгоритмы

Алгоритмы, используемые для poly и roots проиллюстрировать интересный аспект современного подхода к расчету собственных значений. poly(A) генерирует характеристический полином A, и roots(poly(A)) находит корни этого полинома, которые являются собственными значениями A. Но оба poly и roots использовать eig, который основан на преобразованиях подобия. Классический подход, который характеризует собственные значения как корни характерного полинома, на самом деле противоположен.

Если A является n-by- n матрица, poly(A) вырабатывает коэффициенты p(1) через p(n+1), с p(1) = 1, в

det(λIA)=p1λn++pnλ+pn+1.

Алгоритм является

z = eig(A);
p = zeros(n+1,1); 
p(1) = 1;
for j = 1:n
    p(2:j+1) = p(2:j+1)-z(j)*p(1:j);
end

Эта рекурсия определяется расширением продукта,

(λλ1)(λλ2)(λλn).

Можно доказать, что poly(A) производит коэффициенты в характеристическом полиноме матрицы в пределах округлой ошибки A. Это верно, даже если собственные значения A плохо обусловлены. Традиционные алгоритмы получения характеристического полинома не используют собственных значений и не имеют таких удовлетворительных числовых свойств.

Расширенные возможности

.
Представлено до R2006a