数值线性代数:奇异值分解SVD

本文记录计算矩阵奇异值分解SVD的原理与流程。

注1:限于研究水平,分析难免不当,欢迎批评指正。

零、预修

0.1 矩阵的奇异值

设列满秩矩阵,若的特征值为,则称为矩阵的奇异值。

0.2 SVD(分解)定理

设,则存在正交矩阵与,使得

其中,,,即为矩阵的奇异值。

考虑下述两种情形:

  • 情形1:

其中,

由此可以看出,若,通过计算矩阵的奇异值,便可矩阵的特征值,而矩阵即为矩阵的特征向量。

  • 情形2:

若,则,也就是说,是的特征值,也是的特征向量。同时考虑到实对称矩阵的秩为n,所以的特征值/特征向量也是的特征值/特征向量。

0.3 Householder变换

设,且,定义为Householder变换。

对于非零向量,可构造,使得

其中,,,。

设,,,对于,

根据上述结论可知,可以构造,使得

具体来说,可按照下述流程进行操作:

由此,通过Householder变换,可以将某一列向量的部分连续元素约化为0。

0.4 Givens变换

设是n维Euclid空间中的一组标准正交基,,则在平面中存在旋转变换矩阵,满足

其中,

由此可以看出,可以将向量的某个元素约化为0。

一、隐式QR计算矩阵奇异值分解

参考资料

Gene H. Golub. Matrix Computations

徐树方. 数值线性代数(第二版). 北京大学出版社, 2010.

Golub G. and Kahan W.. Calculating the Singular Values and Pseudo-Inverse of a Matrix. Journal of the Society for Industrial and Applied Mathematics: Series B, Numerical Analysis, 1965, 2(2) : 205-224.

Demmel J., Kahan W..Accurate Singular Values of Bidiagonal Matrices. SIAM Journal on Scientific and StatisticalComputing, 1990, 11(5):873-912.

P. A. Businger,G. H. Golub. Singular value decomposition of a complex matrix. communications of the acm, 1969.

相关推荐
别问!问就是全会28 分钟前
Jupyter Notebook 安装包下载|单元格分块运行,图表直接内嵌
ide·python·其他·jupyter
echoarts4 小时前
服务器连不上?FileZilla 改被动模式就好了
运维·服务器·其他
pixelpilot5 小时前
Deta Surf:把笔记、文件和网页塞进同一个 AI 工作台
笔记·其他
debugdynamo7 小时前
Netcatty:把 SSH 客户端做回工作台
运维·其他·ssh
kk_net889911 小时前
微软常用运行库合集免费下载安装教程(附运行库安装包)微软运行库安装图文教程
其他·microsoft
cloudcruiser12 小时前
VRay for Blender 7.20安装包免费下载及安装教程!
其他·blender
techvoyager12 天前
EcoPaste:把剪贴板这件事做扎实的本地工具
其他
networknomad3 天前
OpenReplay:自己搭的会话回放工具,给前端排错用的
前端·其他
limanovember3 天前
yq:命令行下的 YAML 和 JSON 处理利器
其他·json
果果了不起3 天前
JumpServer:开源堡垒机的实用之选
其他·开源