poly
指定された根をもつ多項式または特性多項式
説明
例
入力引数
出力引数
ヒント
ベクトルの場合、関数
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
とします。
アルゴリズムは以下になります。
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
この漸化式は、積を拡張することにより導出できます。
A
の丸め誤差内で、poly(A)
が行列の特性多項式の係数を作成することを証明することができます。これは、A
の固有値が悪条件のときでも真になります。特性多項式を求めるための従来のアルゴリズムは固有値を使わず、このような条件を満たす数値的な特性をもっていません。
拡張機能
バージョン履歴
R2006a より前に導入