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。
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 的矩阵,其列对应特征向量。
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 _|
伴随矩阵的特征值等于多项式的根。
[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]
版权所有 © 2024-2026 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-4