Полином с заданными корнями или характеристический полином
Для векторов, 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 \in
Алгоритм
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
плохо обусловливаются. Традиционные алгоритмы для получения характеристического полинома не используют собственные значения и не имеют таких удовлетворительных числовых свойств.