数值线性代数:奇异值分解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.

相关推荐
echoarts1 天前
Rayon Rust中的数据并行库入门教程
开发语言·其他·算法·rust
alphageek81 天前
Electron开源库入门教程:跨平台桌面应用框架
javascript·其他·electron·开源
SccTsAxR2 天前
[C语言]常见排序算法①
c语言·开发语言·经验分享·笔记·其他·排序算法
橘子洲头3 天前
实验室试管架 | 塑料、金属等多种材质与规格 | 支持多种试管尺寸 | Sigma-Aldrich
其他
老陈头聊SEO4 天前
智能科技与搜索引擎优化关键词的新契机
其他
晨非辰4 天前
#C语言——刷题攻略:牛客编程入门训练(十二):攻克 循环控制(四)、循环输出图形(一),轻松拿捏!
c语言·开发语言·经验分享·笔记·其他·学习方法·visual studio
草莓熊Lotso4 天前
《从 0 建立测试开发认知:先搞懂 “是什么”,再学 “怎么做”》
经验分享·笔记·其他·测试
aramae7 天前
C++ -- 模板
开发语言·c++·笔记·其他
ん贤7 天前
创作纪念日·512天
经验分享·其他·生活
草莓熊Lotso7 天前
【C++】递归与迭代:两种编程范式的对比与实践
c语言·开发语言·c++·经验分享·笔记·其他