如何通过matlab求解奇异值

 时间:2024-10-21 16:29:22

矩形矩阵A的奇异值和对应的奇异向量分别为满足以下条件的标量σ以及一对向量u和v其中AH是A的Hermitian转置。奇异向量u和v通常缩放至范数为1。此外,如果u和v均为A的奇异向量,则-u和-v也为A的奇异向量。

如何通过matlab求解奇异值

工具/原料

电脑

matlab

方法/步骤

1、奇异值σ始终为非负实数,即使A为复数也是如此。对于对角矩阵Σ的对角线上的奇异值以及构成两个正交矩阵U和V的列的对应奇异向量,方程为

如何通过matlab求解奇异值

2、由于U和V均为单位矩阵,因此将第一个方程的右侧乘以VH会生成奇异值分解方程

如何通过matlab求解奇异值

3、m×n矩阵的完整奇异值分解谭终沫冀涉及m×mU、m×nΣ以及n×nV。换句话说,U和V均为方阵,Σ与惺绅寨瞀A的大小相同。如果A的行数远多于列数(m>n),则得到的m×m矩阵U为大型矩阵。但是,U中的大多数列与Σ中的零相乘。在这种情况下,精简分解可通过生成一个m×nU、一个n×nΣ以及相同的V来同时节省时间和存储空间:

如何通过matlab求解奇异值

4、特征值分解是分析矩阵(当矩形表示从向量空间到其自身的缛典蛸疸映射时)的合适工具,就像分析常微分方程一样。但是,奇异值分解是分析从一个向量空间到另一个向量空间(可能具有不同鹚兢尖睁的维度)的映射的合适工具。大多数联立线性方程组都属于这第二类。如果A是方形的对称正定矩阵,则其特征值分解和奇异值分解相同。但是,当A偏离对称性和正定性时,这两种分解之间的差异就会增加。特别是,实矩阵的奇异值分解始终为实数,但非对称实矩阵的特征值分解可能为复数。对于示例矩阵

如何通过matlab求解奇异值

5、完整的奇异值分解为

如何通过matlab求解奇异值

6、可以验证U*S*V'在舍入误差界限内是否等于A。对于此类小问题,精简分解只是略小一些。

如何通过matlab求解奇异值

7、同样,U*S*V'咯悝滩镞在舍入误差界限内等于A。如果矩阵A很大并且是稀疏矩阵,则使用svd来计算所有奇异值和向量在某些情况下可能会不太切合实际。例如芟坳葩津,如果您只需了解几个最大的奇异值,则计算一个5000×5000稀疏矩阵的所有奇异值会带来大量额外工作。在只需要一部分奇异值和向量的情况下,svds函数优先于svd。对于一个密度约为30%的1000×1000随机稀疏矩阵,

如何通过matlab求解奇异值

8、最大的六个奇异值为S=svds(A)

如何通过matlab求解奇异值

9、此外,最小的六个奇异值为S=svds(A,6,'smallest')

如何通过matlab求解奇异值

10、对于可作为满矩阵full(A)载入内存的较小矩阵,使用svd(full(A))的速度可能仍旧快于使用svds。但对于确实很大的稀疏矩阵,就有必要使用svds。

MATLAB 三角函数的用法 怎么用MATLAB解方程 matlab变量赋值 matlab怎样给变量赋值? matlab中怎么输入指数 matlab如何做散点图
热门搜索
罗马斗兽场图片 熊猫简笔画图片大全 金丝雀图片 图钉图片 恋母漫画