matlab精度检验代码bksvd-块Krylov奇异值分解
简单的MATLAB代码,可通过分析的随机块Krylov方法迭代计算SVD或PCA
安装
下载bksvd.m
,或直接将其包含在项目目录中。
文献资料
bksvd可用作MATLAB的svds函数的svds替代函数,用于计算奇异值分解(SVD)。
它也可以用于主成分分析(PCA),该方法在对数据矩阵进行均值居中后对SVD执行SVD。
用法
输入:
bksvd(A,
k,
iter,
bsize,
center)
A
:分解矩阵
k
:要计算的奇异向量的数量,默认=
6
iter
:迭代次数,默认=
3,增加以提高准确性
bsize
:块大小,必须>
=
k,默认=
k
center
:如果在奇异值分解之前(例如执行PCA时)A的行应居中,则设置为true
,默认=
false
输出:
k个奇异矢量/值对
U
:正交矩阵,其列是A顶部k个左奇异矢量的近似值
S
:对角矩阵,其条目为A的近似k个奇异值
V
:正交矩阵,其列约为A前k个右奇异矢量
U*S*V'是A近似最佳低秩逼近
例子
标准奇异值分解:
%
generate
test
2021-08-01 17:31:08
5KB
系统开源
1