概述
计算一对矩阵的 QZ 分解,然后根据指定的特征值顺序对因子重新排序。
计算一对矩阵 A 和 B 的 QZ 分解或广义 Schur 分解。此分解生成因子 AA=QAZ 和 BB=QBZ。
A = magic(5);
B = hilb(5);
[AA,BB,Q,Z] = qz(A,B)
AA = 5×5
14.5272 -2.3517 8.5757 -0.2350 -1.4432
0 -19.7471 2.1824 4.5417 7.2059
0 0 -17.9538 8.9292 -9.6961
0 0 0 30.3449 -47.9191
0 0 0 0 32.4399
BB = 5×5
0.0000 0.0005 0.0018 0.0465 0.2304
0 0.0008 0.0199 0.1662 0.7320
0 0 0.0210 0.1006 -0.1341
0 0 0 0.0623 -1.1380
0 0 0 0 0.7434
Q = 5×5
-0.1743 -0.1099 -0.0789 -0.4690 0.8552
-0.7567 -0.1151 -0.0846 0.6172 0.1617
-0.4010 0.6782 0.5478 -0.2664 -0.0901
0.4178 -0.0297 0.6473 0.4883 0.4089
-0.2484 -0.7168 0.5173 -0.2995 -0.2593
Z = 5×5
0.0057 -0.0424 -0.2914 -0.5860 -0.7549
-0.1125 0.4109 0.7635 0.1734 -0.4533
0.4995 -0.6746 0.1486 0.4053 -0.3303
-0.7694 -0.2140 -0.2614 0.4749 -0.2616
0.3818 0.5731 -0.4917 0.4866 -0.2173
由于 AA 和 BB 都是三角矩阵,因此使用 ordeig 从 AA 和 BB 的对角块中提取特征值。
e = ordeig(AA,BB)
e = 5×1
106 ×
2.8871
-0.0257
-0.0009
0.0005
0.0000
将特征值分成组,由正实数特征值 (e>0) 构成起始组。根据此特征值顺序,对矩阵 AA、BB、Q 和 Z 重新排序。
[AAS,BBS,QS,ZS] = ordqz(AA,BB,Q,Z,'rhp')
AAS = 5×5
14.5272 -1.2849 1.0391 -7.6821 4.4119
0 21.7128 -19.1784 -1.8380 9.1187
0 0 60.3083 8.4452 -6.4304
0 0 0 -18.2081 3.3783
0 0 0 0 -14.6375
BBS = 5×5
0.0000 0.0114 0.1908 0.1119 0.0788
0 0.0446 0.0377 0.1107 0.1978
0 0 1.3820 0.6325 0.2807
0 0 0 0.0007 -0.0137
0 0 0 0 0.0171
QS = 5×5
-0.1743 -0.1099 -0.0789 -0.4690 0.8552
-0.6353 0.1853 0.4099 0.5765 0.2483
-0.7034 -0.4518 -0.3456 -0.2295 -0.3591
0.1415 -0.2036 -0.7054 0.6065 0.2703
-0.2263 0.8414 -0.4568 -0.1647 -0.0705
ZS = 5×5
0.0057 -0.0088 -0.5288 -0.3591 -0.7690
-0.1125 -0.6095 -0.3858 -0.4737 0.4926
0.4995 0.6478 -0.2711 -0.3644 0.3529
-0.7694 0.4176 -0.4090 0.1750 0.1890
0.3818 -0.1855 -0.5752 0.6952 0.0758
检查新的特征值顺序。
E2 = ordeig(AAS,BBS)
E2 = 5×1
106 ×
2.8871
0.0005
0.0000
-0.0257
-0.0009
最后
以上就是幸福大白为你收集整理的matlab 特征值分解排序,在 QZ 分解中将特征值重新排序的全部内容,希望文章能够帮你解决matlab 特征值分解排序,在 QZ 分解中将特征值重新排序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复