matlab中svd和eig的区别

svd和eig的区别

1.eig-特征值分解

1.1回顾特征值

A x = λ x Ax = \lambda x Ax=λx
注: ∑ \sum 为特征值组成的对角阵
W W W为特征向量组成的矩阵
则有:
A W = W ∑ AW=W\sum AW=W
所以
A = W ∑ W − 1 A=W \sum W^{-1} A=WW1

1.2matlab中eig应用

  1. [ w , s , v ] = e i g ( X ) [w,s,v]=eig(X) [w,s,v]=eig(X)
    w-特征矩阵;
    s-特征值;
    v-特征向量;
    X ∗ w = w ∗ s X*w=w*s Xw=ws
    v ′ ∗ X = s ∗ v ′ v'*X=s*v' vX=sv
    其中特征值从小到大排序
  2. [ V , D ] = e i g ( A , B ) [V,D]=eig(A,B) [V,D]=eig(A,B)
    A ∗ V = B ∗ V ∗ D A*V=B*V*D AV=BVD

2.svd-奇异值分解

当被处理的矩阵不是方阵时,就不能用特征值分解方法,就可以考虑奇异值分解。

2.1介绍奇异值分解

X 是 ( m ∗ n ) 矩 阵 X是(m*n)矩阵 Xmn

  1. X T X ( n ∗ n ) X^TX(n*n) XTXnn进行特征值分解,得到特征向量矩阵,记做 V V V,是右奇异矩阵;
  2. X X T ( m ∗ m ) XX^T(m*m) XXTmm进行特征值分解,得到特征向量矩阵,记做 U U U,是左奇异矩阵;
  3. [ U , S , V ] = [U,S,V]= [U,S,V]= svd ( X ) (X) (X)
    其中S是从大到小,组成对角阵
  4. 那么只剩下奇异值矩阵 S ( m ∗ n ) S(m*n) Smn没有求解
    实际上奇异值 σ i = λ i 2 \sigma_i=\sqrt{\lambda^{2}_i} σi=λi2
    所以可以求 X T X X^TX XTX求特征值,然后开根号
  5. X = U S V T X=USV^T X=USVT

注: 考虑到奇异值从大到小和特征值从小到大,考虑实际求取的特征值对应的特征向量可以是成比例的,不一定是一样的,所以
① [ u , s 2 ] = e i g ( A ∗ A ′ ) ①[u,s_2]=eig(A*A') [u,s2]=eig(AA
② [ u 1 , s 1 , v 1 ] = s v d ( A ) ②[u_1,s_1,v_1]=svd(A) [u1,s1,v1]=svd(A)
③ [ v , s 3 ] = e i g ( A ′ ∗ A ) ③[v,s_3]=eig(A'*A) [v,s3]=eig(AA)
其中奇异值 s 1 s_1 s1是对应的 s 2 和 s 3 s_2和s_3 s2s3的根号倍;
u u u 对应的 u 1 u_1 u1 v v v 对应的 v 1 v_1 v1的也不完全相同,要注意理解。

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值