矩阵的QZ分解

在MATLAB中,QZ分解可由函数qz来实现。qz函数常用的语法格式如下。

[AA,BB,Q,Z,V] = qz(A,B):要求矩阵A和B是方阵。产生的矩阵AA和BB是上三角矩阵,Q和Z是正交矩阵,矩阵V是特征向量矩阵。其中,满足Q*A*Z = AA与Q*B*Z = BB。

[AA,BB,Q,Z,V] = qz(A,B,flag):对于方阵A,B的QZ分解,取决于参数flag。参数flag可取'complex'与'real'。其中,'complex'表示复分解,产生三角矩阵AA,'real'表示实分解,产生三角矩阵AA。

在命令窗口中输入

code.matlab
>> a=[1 2 0;2 5 -1;4 10 -1];
>> x=[1 3 4;2,6,5;3 2,4];
>> [b,c,e,z,v]=qz(a,x)
b =
  -0.1783 + 0.0000i     -1.4551 + 0.4813i    -3.0105 + 0.2715i
        0             5.6957 - 1.6531i     10.1589 - 1.1010i
        0                  0             0.9081 + 0.2636i
c =
   2.7199            -7.4009 + 0.2393i     -2.2295 + 1.2686i
        0             6.9587             0.4560 - 1.1530i
        0                  0             1.1095
e =
 	-0.5730 - 0.0018i  	-0.7935 - 0.0026i  	0.2051 + 0.0007i
 	0.0758 - 0.0217i  	0.1978 + 0.0143i   	0.9769 - 0.0053i
 	-0.8158 + 0.0013i   	0.5753 + 0.0057i  	-0.0531 + 0.0255i
z =
   0.8670 - 0.0028i   0.4652 - 0.0196i   0.1583 - 0.0804i
  -0.3824 + 0.0012i   0.4177 - 0.1304i   0.8099 - 0.0801i
  -0.3196 + 0.0010i   0.7624 + 0.1027i  -0.5396 - 0.1223i
v =
   0.9968 - 0.0032i   0.9510 - 0.0490i   0.0519 - 0.9481i
  -0.4397 + 0.0014i  -0.1409 - 0.0406i   0.0400 + 0.1407i
  -0.3674 + 0.0012i   0.0671 + 0.0607i  -0.0603 - 0.0671i