MATLAB Function Reference    
poly

指定した根をもつ多項式

表示

詳細

A が、nn列の行列のとき、p = poly(A) は、特性多項式 det(sI - A) の係数を要素にもつ n+1 個の要素からなる行ベクトルを出力します。係数は、次数の降順に並べられています。ベクトル c n+1 項をもつ場合、多項式はつぎのようになります。
pre>

p = poly(r) は、r が、多項式の根を要素にもつとき、p = poly(r) は、その要素が多項式の係数である行ベクトルを出力します。

注意

このコマンドと

の関係について注意してください。これは、多項式の係数となる行ベクトル p によって指定される多項式の根を要素とする列ベクトルを出力します。ベクトルに対して、rootspoly は、順序付け、スケーリング、丸め誤差について、お互いが逆関数です。

例題

MATLAB は、降順に並んだ係数を含む行ベクトルとして、多項式を表現します。つぎの行列

の特性方程式は、poly によって行ベクトルとして出力されます。

この多項式の根(行列 A の固有値)は、roots によって列ベクトルとして出力されます。

アルゴリズム

polyroots で使用されているアルゴリズムは、固有値計算に関する最新のアプローチを使っています。poly(A) は、A の特性多項式を作成し、roots(poly(A)) は、その多項式の根を計算します。この根は、A の固有値になります。polyroots は、共に、相似変換をベースにした eig を使っています。特性多項式の根として、固有値を特徴付ける古典的なアプローチは、実際には使われていません。

A が、nn 列の行列の場合、poly(A) は、係数 c(1) から c(n+1) までを作成します。ここで、つぎの関係にあり、c(1) = 1 とします。

アルゴリズムは、つぎのようになります。

この漸化式は、積を拡張することにより、簡単に導出できます。

A の丸め誤差内で、行列の特性多項式の係数を作成することを証明することができます。このことは、A の固有値が、条件数の悪いときでさえも、真です。固有値を使わないで、特性方程式を得るための従来までのアルゴリズムは、このような満足の行く数値的な特性をもっていません。

参考

conv, polyval, residue, roots


 polar polyarea