
随机奇异值分解:MATLAB开发中快速截断SVD计算方法。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
该函数能够高效地执行快速截断的奇异值分解 (SVD)。 经常情况下,我们都需要进行奇异值分解的计算。 然而,在实际应用中,通常情况下并不需要像主成分分析中那样获取所有奇异向量和奇异值。 这一现象也揭示了一个关键事实:在实践中,许多矩阵都展现出特定的结构特征,使得只有少数奇异值才具有实际意义。 近期研究表明,对于截断的 SVD 计算,随机算法能够显著提升计算速度。 使用方法:输入参数包括:* A:表示我们所希望得到的 SVD 矩阵;* K:指定需要保留的组件数量。输出参数为:* U, S, V:如同 MATLAB 内置的 `svd` 函数所提供的标准输出结果。以下是一个小型示例,展示了在我的笔记本电脑上运行 2000x2000 秩为 100 的矩阵时的情况:
```matlab
>> A = randn(2000,100)*randn(100,2000);
>> svd(A);
[U1,S1,V1] = svd(A);
耗时: 6.509186 秒
>> rsvd(A, [], 1) ; % 使用 rsvd 函数进行截断 SVD
[U2,S2,V2] = rsvd(A, [], 1) ; % 使用 rsvd 函数进行截断 SVD
```
全部评论 (0)
还没有任何评论哟~


