exponenta event banner

poly

Многочлен с указанными корнями или характеристический многочлен

Синтаксис

Описание

пример

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

пример

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

Примеры

свернуть все

Вычислите собственные значения матрицы, 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около-n матрица, A, то p содержит коэффициенты для характеристического многочлена A.

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

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

p1xn + p2xn − 1 +... + pnx + pn + 1.

Совет

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

Алгоритмы

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

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

det (λ I A) = 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