Полином с заданными корнями или характеристический полином
Для векторов, 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
, в
Алгоритм является
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
Эта рекурсия определяется расширением продукта,
Можно доказать, что poly(A)
производит коэффициенты в характеристическом полиноме матрицы в пределах округлой ошибки A
. Это верно, даже если собственные значения A
плохо обусловлены. Традиционные алгоритмы получения характеристического полинома не используют собственных значений и не имеют таких удовлетворительных числовых свойств.