奇异值分解的应用

一:奇异值分解的应用

奇异值分解可以被用来计算矩阵的伪逆。若矩阵 M 的奇异值分解为 ,那么 M 的伪逆为其中 是 的伪逆,并将其主对角线上每个非零元素都求倒数之后再转置得到的。求伪逆通常可以用来求解线性最小平方、最小二乘法问题。 奇异值分解在统计中的主要应用为主成分分析(PCA),种数据分析方法,用来找出大量数据中所隐含的“模式”,它可以用在模式识别,数据压缩等方面。PCA算法的作用是把数据集映射到低维空间中去。 数据集的特征值(在SVD中用奇异值表征)按照重要性排列,降维的过程就是舍弃不重要的特征向量的过程,而剩下的特征向量组成的空间即为降维后的空间。几种编程语言中计算SVD的函式范例matlab:[b c d]=svd(x)OpenCV:void cvSVD( CvArr* A, CvArr* W, CvArr* U=NULL, CvArr* V=NULL, int flags=0 )

二:奇异值分解的方法

奇异值分解

定理:设A为m*n阶复矩阵,则存在m阶酉阵U和n阶酉阵V,使得:

A = U*S*V’

其中S=diag(σi,σ2,……,σr),σi>0 (i=1,…,r),r=rank(A)。

推论:设A为m*n阶实矩阵,则存在m阶正交阵U和n阶正交阵V,使得

A = U*S*V’

其中S=diag(σi,σ2,……,σr),σi>0 (i=1,…,r),r=rank(A)。

说明:

1、 奇异值分解非常有用,对于矩阵A(m*n),存在U(m*m),V(n*n),S(m*n),满足A = U*S*V’。U和V中分别是A的奇异向量,而S是A的奇异值。AA'的正交单位特征向量组成U,特征值组成S'S,A'A的正交单位特征向量组成V,特征值(与AA'相同)组成SS'。因此,奇异值分解和特征值问题紧密联系。

2、 奇异值分解提供了一些关于A的信息,例如非零奇异值的数目(S的阶数)和A的秩相同,一旦秩r确定,那么U的前r列构成了A的列向量空间的正交基。

matlab奇异值分解

函数 svd  格式 s = svd (A) %返回矩阵A的奇异值向量

[U,S,V] = svd(A) %返回一个与A同大小的对角矩阵S,两个酉矩阵U和V,且满足= U*S*V'。若A为m×n阵,则U为m×m阵,V为n×n阵。奇异值在S的对角线上,非负且按降序排列

[U1,S1,V1]=svd(X,0) %产生A的“经济型”分解,只计算出矩阵U的前n列和n×n阶的S。

说明:

1.“经济型”分解节省存储空间。

2. U*S*V'=U1*S1*V1'。

2 矩阵近似值

奇异值分解在统计中的主要应用为主成分分析(PCA),它是一种数据分析方法,用来找出大量数据中所隐含的“模式”,它可以用在模式识别,数据压缩等方面。PCA算法的作用是把数据集映射到低维空间中去。

数据集的特征值(在SVD中用奇异值表征)按照重要性排列,降维的过程就是舍弃不重要的特征向量的过程,而剩下的特征向量张成空间为降维后的空间。

3 应用

在很长时间内,奇异值分解都无法并行处理。(虽然 Google 早就有了MapReduce 等并行计算的工具,但是由于奇异值分解很难拆成不相关子运算,即使在 Google 内部以前也无法利用并行计算的优势来分解矩阵。)最近,Google 中国的张智威博士和几个中国的工程师及实习生已经实现了奇异值分解的并行算法,这是 Google中国对世界的一个贡献。

三:MATLAB中SVD奇异值分解是什么作用?

奇异值分解 (sigular value decomposition,SVD) 是另一种正交矩阵分解法;SVD是最可靠的分解法,但是它比QR 分解法要花上近十倍的计算时间。[U,S,V]=svd(A),其中U和V代表二个相互正交矩阵,而S代表一对角矩阵。 和QR分解法相同者, 原矩阵A不必为正方矩阵。

使用SVD分解法的用途是解最小平方误差法和数据压缩

四:matlab中SVD分解得到的奇异值是经过排序的 如何能得到不排序的奇异值呢 求大神解答 100分

我试了一下,eig([1 0 0;0 10 0;0 0 5])结果是 1, 10, 5。说明eig命令得到的特征值未排序。这样的话A的奇异值就是A'A的特征值的开方,可以用sqrt(eig(A'*A))得到对应状态量的奇异值,因为求特征值的操作eig是默认不排序的。

扫一扫手机访问

发表评论