R中奇异值分解svd函数
概述:
公式:
公式里的
U就是下面运行结果的a$u,
Σ就是下面的a$d变换成的对角矩阵(diag(a$d)),
V就是下面运行结果的a$v
001、
> x <- matrix(1:20,nrow = 4,ncol = 5) ## 生成测试矩阵 > x [,1] [,2] [,3] [,4] [,5] [1,] 1 5 9 13 17 [2,] 2 6 10 14 18 [3,] 3 7 11 15 19 [4,] 4 8 12 16 20
奇异值分解:
a <- svd(x) ## 奇异值分解
a
返回值是列表, 分别查看每一项:
a$d
a$u
a$v
验证:
a$u%*%diag(a$d)%*%t(a$v)
x