28.2 求根

Octave 可以计算给定多项式的根。这是通过计算多项式的伴随矩阵(参见 compan 函数的定义)然后求其特征值来实现的。

 
r = roots (c)

计算多项式 c 的根。

对于具有 N 个分量的向量 c,返回多项式

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

的根。

例如,以下代码计算二次多项式

p(x) = x^2 - 5.

的根:

c = [1, 0, -5];
roots (c)
⇒   2.2361
⇒   -2.2361

注意,真实结果为 ± sqrt(5),约等于 ± 2.2361

另请参阅: polycompanfzero

 
z = polyeig (C0, C1, …, Cl)
[v, z] = polyeig (C0, C1, …, Cl)

求解 l 次多项式特征值问题。

给定一个 n × n 的矩阵多项式

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

polyeig 求解特征值问题

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

注意,特征值 z 是矩阵多项式的零点。z 是一个行向量,具有 n*l 个元素。v 是一个 n × n*l 的矩阵,其列对应特征向量。

另请参阅: eigeigscompan

 
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     _|

伴随矩阵的特征值等于多项式的根。

另请参阅: rootspolyeig

 
[multp, idxp] = mpoles (p)
[multp, idxp] = mpoles (p, tol)
[multp, idxp] = mpoles (p, tol, reorder)

识别 p 中唯一的极点及其相应的重数。

默认情况下,输出按照从模最大的极点到模最小的极点排序。

如果两个极点之间的差值小于相对容差 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]

另请参阅: residuepolyrootsconvdeconv


版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-4