# schur
Schur 分解/广义 Schur 分解
函数库: TyMath
# 语法
F = schur(A)
T,U,S = schur(A)
E = schur(A,B)
AA,BB,Q,Z,V,W = schur(A,B)
# 说明
T,U,S = schur(A) T 为 A 的舒尔矩阵,U 为酉矩阵,并满足
E = schur(A,B) 返回一个广义 Schur(QZ) 分解对象。
AA,BB,Q,ZV,W = schur(A,B) 对方阵 A 和 B 执行 广义 schur(QZ) 分解,使得
- 如果 A 和 B 是实数,则 AA 和 BB 是上拟三角矩阵;
- 如果 A 和 B 是复数,则 AA 和 BB 是三角矩阵;
- Q 和 Z 是酉矩阵;
- V,W 为 AA、BB 对应的实数舒尔形式的特征值。示例
提示
不同电脑可能结果有差异。
# 示例
具有复数特征值的矩阵的舒尔形式
using TyMath
A = [3 1 1; 0 2 0; -2 1 1]
A = 3×3 Matrix{Int64}:
3 1 1
0 2 0
-2 1 1
计算 A 的实数舒尔形式。对角线上的 2×2 分块矩阵表示一对共轭复数特征值。
T,U,S = schur(A)
T = 3×3 Matrix{Float64}:
2.0 0.381966 1.37638
-2.61803 2.0 0.32492
0.0 0.0 2.0
U = 3×3 Matrix{Float64}:
0.850651 -0.525731 0.0
0.0 0.0 1.0
0.525731 0.850651 0.0
S = 3-element Vector{ComplexF64}:
1.9999999999999998 + 0.9999999999999998im
1.9999999999999998 - 0.9999999999999998im
2.0 + 0.0im
用 ordeig 函数求实数舒尔形式的特征值进行验证。
ordeig(T)
ans = 3-element Vector{ComplexF64}:
1.9999999999999998 + 0.9999999999999996im
1.9999999999999998 - 0.9999999999999996im
2.0 + 0.0im
矩阵的完整舒尔分解
using TyMath
using TyBase
A = magic(3);
T,U,S = schur(A)
T = 3×3 Matrix{Float64}:
15.0 2.72005e-15 -7.35523e-16
0.0 4.89898 -3.4641
0.0 0.0 -4.89898
U = 3×3 Matrix{Float64}:
-0.57735 -0.813053 -0.074915
-0.57735 0.471405 -0.666667
-0.57735 0.341648 0.741582
验证
norm(A-U*T*U')
7.470736847486102e-15
norm(U'*U - eye(size(U)))
6.568167990716596e-16
广义 schur(QZ)分解
计算两个 3×3 矩阵的广义 schur(QZ)分解。
using TyMath
using TyBase
A = [1 7 3; 2 9 12; 5 22 7];
B = [3 1 0; 0 3 1; 0 0 3];
AA,BB,Q,Z,V,W = schur(A,B)
AA = 3×3 Matrix{Float64}:
23.5574 1.41337 -14.3485
0.0 -0.577613 2.7629
0.0 0.0 -8.67197
BB = 3×3 Matrix{Float64}:
3.58454 -0.109016 -0.602449
0.0 2.75991 0.842973
0.0 0.0 2.7292
Q = 3×3 Matrix{Float64}:
0.256556 -0.947681 -0.189945
0.635265 0.313448 -0.705825
0.728435 0.0604184 0.682446
Z = 3×3 Matrix{Float64}:
0.150238 -0.966351 -0.208791
0.468921 0.255573 -0.845455
0.870368 0.0291128 0.49154
在计算机精度范围内验证 AA - Q'AZ、BB - Q'BZ、Q'*Q - eye(size(Q)) 和 Z'*Z - eye(size(Z)) 的范数是否为 0。
norm(AA - Q'*A*Z)
ans = 1.1301402723951301e-14
norm(BB - Q'*B*Z)
ans = 2.9463837789015326e-15
norm(Q'*Q - eye(size(Q)))
1.1128653336043009e-15
norm(Z'*Z - eye(size(Z)))
1.1631317672413088e-15
# 输入参数
A, B — 输入矩阵方阵
输入矩阵,指定为实数方阵或复数方阵。A 和 B 的维度必须相同。其中对于普通 schur 分解,A 必须为稠密矩阵。
数据类型: Int | Float
复数支持: 是
# 输出参数
U — 舒尔向量酉矩阵
舒尔向量,以满足
数据类型: Int | Float
T — 舒尔矩阵方阵
舒尔矩阵,以实数或复数方阵形式返回。
数据类型: Int | Float
S、V、W — 特征值向量
矩阵 Schur/广义 Schur 形式对应的特征值。
数据类型: Int | Float
AA, BB — A 和 B 的广义舒尔形式方阵
矩阵 Schur/广义 Schur 形式对应的特征值向量。
数据类型: Int | Float
Q, Z — 酉因子方阵
酉因子,以满足
数据类型: Int | Float
F — Schur 分解对象结构体
| 输出 | 含义 | 输出类型 |
|---|---|---|
| F.Z | 舒尔向量 | 酉矩阵(Matrix) |
| F.T | 舒尔矩阵 | 方阵(Matrix) |
| F.values | 特征值 | 向量(Vector) |
其中 F.T 、F.Z 和 F.values 分别对应 T,U,S = schur(A) 中的 T 、U 和 S 。
E — 广义 Schur(QZ) 分解对象结构体
| 输出 | 含义 | 输出类型 |
|---|---|---|
| E.S | A 的广义舒尔形式 | 方阵(Matrix) |
| E.T | B 的广义舒尔形式 | 方阵(Matrix) |
| E.α | E.S 对应的实数舒尔形式的特征值 | 向量(Vector) |
| E.β | E.T 对应的实数舒尔形式的特征值 | 向量(Vector) |
| E.Q | 酉因子 | 方阵(Matrix) |
| E.Z | 酉因子 | 方阵(Matrix) |
其中 E.S 、E.T 、E.α 、E.β、E.Q 和 E.Z 分别对应 AA,BB,Q,Z,V,W = schur(A,B) 中的 AA 、BB 、V、W、Q 和 Z。
# 详细信息
拟三角矩阵
上部拟三角矩阵可由实矩阵的舒尔分解或广义舒尔 (QZ) 分解产生。上拟三角矩阵是分块上三角矩阵,沿对角线是由非零值组成的 1×1 和 2×2 分块。
这些对角块的特征值也是矩阵的特征值。1×1 块对应于实数特征值,2×2 块对应于复共轭特征值对。
酉矩阵
如果可逆复数方阵 U 的共轭转置也是其逆矩阵,即
# 另请参阅
eigen | hessenberg | rsf2csf