【Matlab】特征值分解eig和奇异值分解svd

前言:当A是方阵时,使用eig特征值分解和实验svd奇异值分解,有什么异同?

(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相同。

 

你可能感兴趣的:(Matlab)