如何在 Matlab 中对单个矩阵使用 QZ 分解?

计算科学 线性代数 matlab 矩阵分解
2021-12-18 22:55:12

我可以在 Matlab 中对单个方阵使用 QZ 分解吗?喜欢,

[Aa,Q,Z]=qz(A);
1个回答

据我所知,QZ 分解是针对两个矩阵给出的,因此对于A,BFn×n

(1)A=QSZ,B=QTZ
在哪里Q,Z是单一的,并且S,T是上三角形,并且F是场(实R或复杂C)。QZ分解通常称为广义舒尔分解

对于单个矩阵 AFn×n,可以简单地计算舒尔分解

(2)A=QSchurUQSchur
在哪里QSchur是单一的,并且U是上三角形。

所以 Schur 分解(2),允许“更受限制”的分解A, 因为没有矩阵B, 这种存在会导致广义的 QZ 分解(1)和一个存在Z.


在 Matlab 中,舒尔分解 (2)可以计算如下:

[Q,U] = schur(A,...)

查看 Matlab 函数帮助以获得一些额外的计算选项。与 Matlab 帮助页面相比,请注意 Wikipedia 和此帖子符号选择之间的混淆。