Topic: Computing eigenvalues & Singular values
1.Computing eigenvalues
(1)计算过程
:将非正交基转化为正交基乘上三角矩阵的形式
问题:所需证明的是??答:所需解决的问题是
因此我猜测想表达的意思是比较二者的特征值是否相等,黑板上的等式并不成立。
A1的获得过程如下:
当前解决的问题是:与
的特征值是否相同?
- 当有一个矩阵
,通过变换出现一个相较于A0更小的值
左下角处。
- 通过多次变换
对角线上的元素非常接近特征值,其他元素
均逐渐逼近0,并且不影响对角线的特征值及变换过程。
- 在对角线中,
是最先接近精确特征值的。
举例说明:左下角的数据会以三次方的开销快速缩小到0,对角线上的元素会逐渐接近特征值。
(2)如何加快变化的速度?(即加快趋近特征值的速度)
To solve the problem,the idea will introducing a shift.
通过一个转变,更便捷和快速的解决问题。
通过S倍对阵矩阵的转变, 特征向量保持不变,特征值
因此想要找到一个转变,使,以此加快变换速度。
(3)证明:在转变后矩阵仍然相似
(4)是否可以做其他的转变?
思考:在计算过程中耗费时间最长的地方在哪?答:因式分解。
如果矩阵存在一些元素为0?海森堡矩阵(Hessenberg matrix)大大减少了QR分解的工作量。
ps:5th degree (5 * 5 and up) impossible. no formula to find the formula for
Hessenberg 矩阵是一种特殊类型的方阵,它几乎是上三角矩阵,除了主对角线下面的第一个次对角线。
完整QR方法:①化简A成为Hessenberg形式,矩阵内呈现许多0的状态;②转变形式(shifts),进行QR分解。
matlab 中计算特征值的代码如下:
eig(A)
(5)矩阵的对称性
若矩阵有对称性,则根据上述推导
同样存在对称性。
若一个Hessenberg矩阵具有对称性,则可以推出矩阵形式如下:
如此更加简化了QR的过程。
2.Computing Singular values and SVD
(1)类比及计算
若存在一个对称矩阵通过变换获得tridiagonal矩阵,所获得的矩阵与原始矩阵S有相同的特征值:
当存在一个general matrix A,想要通过矩阵变换,找到相同的奇异值(singular values 所能计算的矩阵广泛,并非只针对方阵)。
核心问题:What group of matrices will have the same sigmas as my starting matrix A?
What is SVD?答:SVD 是奇异值分解(Singular Value Decomposition)。奇异值分解是一种矩阵分解的方法,用于将一个矩阵分解成三个矩阵的乘积。
对于一个给定的矩阵 A,其奇异值分解表示为:
此时应该如何变换此方程才能不影响 矩阵?
是不变量
求解过程如下:
计算,则回到上面的问题
(2)当矩阵很大且稀疏时?
Krylov :,
,
, ....
=> 1000 维的空间
我们希望这个很大的矩阵可以被约束在这1000维的空间之内?100维的空间之内?
- 由于矩阵的稀疏性,这个很大的矩阵大部分有效数据,均在100维的空间之内,在其外的很小且可以被忽略。
- 由此就只考虑100维空间之内的数据,将100million大小的矩阵压缩到100*100.
- 此方法只看the lowest 100--the first 100 eigenvalues of the million
,
,
, ....
=> 1000 维的空间
回到上节课:目前我们快速获得了100维的空间。我们可以对其正交化,由此获得正交基。
总结:我们获得了100维的子空间,查找在这有限的子空间中,大矩阵所被限制的部分,并获得其在有限空间中的特征值,这些特征值不一定是最优最大的特征值,但一定是精确的特征值。
本节课程有些难度,其中有一点地方笔者也没有完全搞清楚,若有错误的地方欢迎大家指正,或留言进行讨论。