2026a

# 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)

# 说明

F = schur(A) 返回一个 Schur 分解对象。


T,U,S = schur(A) T 为 A 的舒尔矩阵,U 为酉矩阵,并满足 ,S 为实数舒尔形式的特征值。示例


E = schur(A,B) 返回一个广义 Schur(QZ) 分解对象。


AA,BB,Q,ZV,W = schur(A,B) 对方阵 A 和 B 执行 广义 schur(QZ) 分解,使得 V,W = schur(A,B) 对方阵 A 和 B 执行 广义 schur(QZ) 分解,使得

  • 如果 A 和 B 是实数,则 AA 和 BB 是上拟三角矩阵
  • 如果 A 和 B 是复数,则 AA 和 BB 是三角矩阵;
  • Q 和 Z 是酉矩阵
  • V,W 为 AA、BB 对应的实数舒尔形式的特征值。示例

提示

不同电脑可能结果有差异。

# 示例

具有复数特征值的矩阵的舒尔形式
创建一个具有复数特征值的 3×3 矩阵。
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
矩阵的完整舒尔分解
创建一个 3×3 幻方矩阵,并计算其舒尔分解因子。
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

验证 的范数为 0(在计算机精度范围内)。

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 — 舒尔向量
酉矩阵

舒尔向量,以满足 的酉矩阵形式返回。U 的每列对应一个舒尔向量。如果舒尔矩阵 T 为三角形,则 U 的第一列是 A 的特征向量,对应于 T 的第一个元素。

数据类型: 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 分解对象
结构体
由 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) 分解对象
结构体
由广义 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