ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

構文

  • r = roots(p)

説明

r = roots(p) は、p で表される多項式の根を列ベクトルとして返します。入力 pn+1 個の多項式係数を含むベクトルで、xn の係数で始まります。0 の係数は、方程式に存在しない中間のべき乗を示します。たとえば、p = [3 2 -2] は多項式 3x2+2x2 を表現します。

関数 roots は、次の形式の多項方程式を解きます。p1xn+...+pnx+pn+1=0多項方程式には、非負の指数をもつ変数が 1 つ含まれます。

すべて折りたたむ

方程式 $3x^2-2x-4=0$ を解きます。

まず多項式を表すベクトルを作成してから、根を求めます。

p = [3 -2 -4];
r = roots(p)
r =

    1.5352
   -0.8685

方程式 $x^4 - 1 = 0$ を解きます。

まず多項式を表すベクトルを作成してから、根を求めます。

p = [1 0 0 0 -1];
r = roots(p)
r =

  -1.0000 + 0.0000i
   0.0000 + 1.0000i
   0.0000 - 1.0000i
   1.0000 + 0.0000i

入力引数

すべて折りたたむ

多項式係数。ベクトルとして指定します。たとえば、ベクトル [1 0 1] は多項式 x2+1 を表し、ベクトル [3.13 -2.21 5.99] は多項式 3.13x22.21x+5.99 を表します。

詳細は、「多項式の作成および評価」を参照してください。

データ型: single | double
複素数のサポート: はい

詳細

すべて折りたたむ

ヒント

  • poly を使用して多項式をその根から求めるには、p = poly(r) を実行します。関数 poly は、関数 roots の逆の演算を行います。

  • 非線形方程式の根を求めるには、関数 fzero を使用します。関数 roots は多項式にのみ使用できますが、関数 fzero はより幅広く各種の方程式に適用することができます。

アルゴリズム

関数 roots は、pn+1 個の要素をもつベクトルとして扱います。これは nn 列の行列 A の、n 次元目の特性多項式を表します。多項式の根は、コンパニオン行列 A の固有値を計算して求められます。

A = diag(ones(n-1,1),-1);
A(1,:) = -p(2:n+1)./p(1);
r = eig(A)

この結果は、コンパニオン行列 A の丸め誤差の範囲内にある行列の厳密な固有値です。しかし、それらが p の係数の丸め誤差範囲内にある、多項式の厳密な根であるとは限りません。

参考

| | |

R2006a より前に導入

この情報は役に立ちましたか?