28.2 Finding Roots

Last-modified: 2025-03-08 (土) 14:52:01

28.2 根(ルート)を求める

Octave は、与えられた多項式の根を見つけることができます。これは、多項式のコンパニオン マトリックスを計算し (compan定義については関数を参照)、その固有値を見つけることによって行われます。

: r = roots (c)
多項式cの根を計算します。

N要素のベクトルcに対して、多項式の根を返す。

c(1) * x^(N-1) + ... + c(N-1) * x + c(N)

実際の結果は +/- sqrt(5)であり 、およそ +/- 2.2361であることに注意してください。

p(x) = x^2 - 5.
c = [1, 0, -5];
roots (c)
⇒  2.2361
⇒ -2.2361

Note that the true result is +/- sqrt(5) which is roughly +/- 2.2361.

See also: poly, compan, fzero.

: z = polyeig (C0, C1, …, Cl)
: [v, z] = polyeig (C0, C1, …, Cl)
l次の多項式固有値問題を解きます。

n x n行列多項式 が与えられた場合

C(s) = C0 + C1 s + … + Cl s^l

polyeig固有値問題を解く

(C0 + C1 z + … + Cl z^l) v = 0.

固有値zは行列多項式のゼロであることに注意してください。z は要素を持つ行ベクトルです。v は固有ベクトルに対応する列を持つ 行列 ( n x n * l ) です。n*l
See also: eig, eigs, compan.

: A = compan (c)
多項式係数ベクトルcに対応するコンパニオン行列を計算します 。

付随行列は

   _                                                        _
    |  -c(2)/c(1)   -c(3)/c(1)  ...  -c(N)/c(1)  -c(N+1)/c(1)  |
    |       1            0      ...       0             0      |
    |       0            1      ...       0             0      |
A = |       .            .      .         .             .      |
    |       .            .       .        .             .      |
    |       .            .        .       .             .      |
    |_      0            0      ...       1             0     _|

伴う行列の固有値は多項式の根に等しくなります。

See also: roots, poly, eig.

: [multp, idxp] = mpoles (p)
: [multp, idxp] = mpoles (p, tol)
: [multp, idxp] = mpoles (p, tol, reorder)
p内の固有の極とそれに関連する多重度を識別します。

デフォルトでは、出力は最大振幅の極から最小振幅の極の順に並べられます。

2 つの極の差が相対許容差tolより小さい場合、それらの極は倍数であると見なされます。

abs (p1 - p0) / abs (p0) < tol

極が 0 の場合、スケーリングは行われず、tol は絶対許容値として解釈されます。tol のデフォルト値は 0.001 です。

オプションのパラメータreorderが false/ゼロの場合、極はソートされません。

出力multpは、極の多重度を指定するベクトルです。 は、 multp(n)N 番目の極の多重度を示します 。 p(idxp(n))

p = [2 3 1 1 2];
[m, n] = mpoles (p)
  ⇒ m = [1; 1; 2; 1; 2]
  ⇒ n = [2; 5; 1; 4; 3]
  ⇒ p(n) = [3, 2, 2, 1, 1]

See also: residue, poly, roots, conv, deconv.