1.简述
(1)特征值分解:函数eig
格式:[V,D] = eig(A) %计算A的特征值对角阵D和特征向量V,使AV=VD成立。
注意:特征值分解时,使用eig,矩阵A必须是方阵。
A = [0 1;1 1];
[V,D] = eig(A)
V =
-0.8507 0.5257
0.5257 0.8507
D =
-0.6180 0
0 1.6180
(2)奇异值分解:函数svd
格式:[U,S,V] = svd (X) %返回一个与X同大小的对角矩阵S,两个酉矩阵U和V,且满足= U*S*V'。若A为m×n阵,则U为m×m阵,V为n×n阵。奇异值在S的对角线上,非负且按降序排列。
注意:奇异值分解时,使用svd,当矩阵A是方阵时,对角矩阵S的对角元素就是A的特征值;从这一点出发,如果只是为了求特征值,无论是eig还是svd都可以完成任务。
特别注意一点,如果想求特征向量,svd奇异值分解得到的无论是U还是V都与eig特征值分解得到的V不一样。
>> [U,S,V] = svd (A)
U =
-0.5257 -0.8507
-0.8507 0.5257
S =
1.6180 0
0 0.6180
V =
-0.5257 0.8507
-0.8507 -0.5257
(3)总结:
相同点:当矩阵A是方阵时,svd奇异值分解得到的对角矩阵S的对角元素与eig特征值分解得到的特征值D相同。
2.代码
%% 学习目标:matlab符号方阵的特征值分解
clear all;
syms x;
A1=sym([2 2 2;3 3 3;4 4 4])
E1=eig(A1) %特征值
[V1,D1]=eig(A1) %特征向量 特征值矩阵
%% 学习目标:matlab符号矩阵的奇异值分解
clear all;
A=sym(magic(3))
svd(A)
3.运行结果