poly

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

Синтаксис

p = poly(r)
p = poly(A)

Описание

пример

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

Для просмотра документации необходимо авторизоваться на сайте