SVD分解 解齐次线性方程组
SVD分解
- 只有非方阵才能进行奇异值分解
- SVD分解:把矩阵分解为 特征向量矩阵+缩放矩阵+旋转矩阵
定义
设\(A∈R^{m×n}\),且$ rank(A) = r (r > 0) $,则矩阵A的奇异值分解(SVD)可表示为
\(A = UΣV^T = U\begin{bmatrix} \sum &0\\ 0&0 \end{bmatrix}V = σ_1u_1v^T_1+σ_2u_2v^T_2+σ_ru_rv^T_r \qquad s.t.:U 和V都为正交矩阵\)- 几何含义
- A矩阵的作用是将一个向量从V这组正交基向量的空间旋转到U这组正交基向量的空间,并对每个方向进行了一定的缩放(由Σ决定),缩放因子就是各个奇异值。如果V的维度比U 大,则表示还进行了投影。
- 奇异值分解:将一个矩阵原本混合在一起的三种作用效果,分解出来了。
- \(U∈R_{m×m}\) (左奇异向量):U的列为\(AA^T\)的正交特征向量
- \(V∈R_{n×n}\)(右奇异向量):V的列为\(A^TA\)的正交特征向量
- \(AA^T\)与\(A^TA\):是实对称正定矩阵,且其特征值为非负实数
- \(rank(AA^T) = rank(A^TA) = rank(A)\)
- \(AA^T\)与\(A^TA\)的特征值相同:为\(λ_1,λ_2,...,λ_r\),且\(λ_i≥λ_i+1,λ_i≥0\)
- \(Σ∈R_{m×n}:σ_i = Σ_{ii} = \sqrt{λ_i}\),其它元素的值为0
- \(Σ = diag(σ_1,σ_2,...,σ_r)\)
\(σ_i(i=1,2,...,r),σ_1≥...≥σ_r>0\):为矩阵A的全部奇异值
SVD解齐次线性方程组
齐次线性方程组\(Ax=0\) 即为\(||Ax||_2\)的非线性优化问题,我们已经知道了x=0是该方程组的一个特解,为了避免x=0这种情况,增加一个约束,比如\(||x||_2=1\)
\begin{equation}
min||Ax|| \qquad s.t.:||x||=1
\end{equation}
\begin{equation}
min||Ax||=min||UDV^Tx||=min||DV^Tx||
\end{equation}
设
\begin{equation}
y=V^Tx
\end{equation}
则问题变为:
\begin{equation}
min||Dy||
\end{equation}
又因为\(||y||=1\),且D是一个对角矩阵,对角元素按降序排列,因此最优解在y=(0,0,...,1)T时取得,又因为x=Vy, 所以最优解就是V的最小奇异值对应的列向量。
SVD分解 解齐次线性方程组的更多相关文章
- Matlab中利用null函数解齐次线性方程组
摘自:http://blog.csdn.net/masibuaa/article/details/8119032 有齐次线性方程AX=0,且rank(A)=r<n时,该方程有无穷多个解, 可以用 ...
- 奇异值分解(SVD)和最小二乘解在解齐次线性超定方程中的应用
奇异值分解,是在A不为方阵时的对特征值分解的一种拓展.奇异值和特征值的重要意义相似,都是为了提取出矩阵的主要特征. 对于齐次线性方程 A*X =0;当A的秩大于列数时,就需要求解最小二乘解,在||X| ...
- SVD分解技术详解
版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gm ...
- SVD分解及线性最小二乘问题
这部分矩阵运算的知识是三维重建的数据基础. 矩阵分解 求解线性方程组:,其解可以表示为. 为了提高运算速度,节约存储空间,通常会采用矩阵分解的方案,常见的矩阵分解有LU分解.QR分解.Cholesky ...
- 投影矩阵、最小二乘法和SVD分解
投影矩阵广泛地应用在数学相关学科的各种证明中,但是由于其概念比较抽象,所以比较难理解.这篇文章主要从最小二乘法的推导导出投影矩阵,并且应用SVD分解,写出常用的几种投影矩阵的形式. 问题的提出 已知有 ...
- opencv2.4中SVD分解的几种调用方法
原帖地址: http://blog.sina.com.cn/s/blog_6109b5d00101ag7a.html 在摄影测量和计算机视觉中,考虑最优解问题时,经常要用到SVD分解.奇异 ...
- SVD分解
首先,有y = AX,将A看作是对X的线性变换 但是,如果有AX = λX,也就是,A对X的线性变换,就是令X的长度为原来的λ倍数. *说起线性变换,A肯定要是方阵,而且各列线性无关.(回想一下,A各 ...
- 【瞎讲】 Cayley-Hamilton 常系数齐次线性递推式第n项的快速计算 (m=1e5,n=1e18)
[背诵瞎讲] Cayley-Hamilton 常系数齐次线性递推式第n项的快速计算 (m=1e5,n=1e18) 看CSP看到一题"线性递推式",不会做,去问了问zsy怎么做,他并 ...
- SVD分解的理解[转载]
http://www.bfcat.com/index.php/2012/03/svd-tutorial/ SVD分解(奇异值分解),本应是本科生就掌握的方法,然而却经常被忽视.实际上,SVD分解不但很 ...
随机推荐
- 814-Binary Tree Pruning
Description: We are given the head node root of a binary tree, where additionally every node’s value ...
- js获取文件后缀
//获取文件后缀 function getType(file){ var filename=file; var index1=filename.lastIndexOf("."); ...
- OPC协议解析-OPC UA OPC统一架构
1 什么是OPC UA 为了应对标准化和跨平台的趋势,为了更好的推广OPC,OPC基金会近些年在之前OPC成功应用的基础上推出了一个新的OPC标准-OPC UA.OPC UA接口协议包含了之前的 ...
- Easyui 实现点击不同树节点打开不同tab页展示不同datagrid表数据设计
实现点击不同树节点打开不同tab页展示不同datagrid表数据设计 by:授客 QQ:1033553122 测试环境 jquery-easyui-1.5.3 需求描述 如上图, 1.点击左侧树,叶子 ...
- ionic3 导航的应用(页面跳转与参数传递)
about.html(跳转页面) <ion-content padding> <ion-list> <ion-item *ngFor="let he of co ...
- 使用Ajax轮询模拟简单的站内信箱(消息管理)功能
前一段时间项目需要写一个类似于站内信箱的消息管理的功能,由于对前端不是很熟悉,刚开始不知道怎么做,后来看了网上的方案,现模拟一个非常简单的消息管理. 我们首先看一下最终效果的样式,就是非常简单的一个样 ...
- ES6使用的一些方法
查找数组中符合条件的所有记录 var list=[ {id:1,name:"张三"}, {id:2,name:"李四"}, {id:3,name:"王 ...
- SQL Server数据库————连接查询和分组查询
SQL Server数据库————连接查询和分组查询 分组查询 select 列from <表名> where …… group by 列 注意:跟order by一样group ...
- Golang 学习权威网站
Golang 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Golang 是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发 ...
- js 学习之路8:for循环
1. for循环 <!DOCTYPE html> <html> <meta http-equiv="Content-Type" content=&qu ...