gpt4 book ai didi

r - R中的奇异值分解

转载 作者:行者123 更新时间:2023-12-04 11:10:11 24 4
gpt4 key购买 nike

关注 example of wikipedia's page on SVD ,我在 R 中创建了以下矩阵:

M <- matrix(0, 4, 5)
M[1, 1] <- 1
M[4, 2] <- 2
M[2, 3] <- 3
M[1, 5] <- 2

从包 base 计算 SVD :
s <- svd(M)

然而, s$u是一个 4x4 矩阵和 s$v是一个 5x4 矩阵,而 V 应该是一个 5x5 矩阵,就像在维基百科的页面(以及该主题的其他页面)中一样。

所以,我有点困惑..

最佳答案

默认情况下,R 不会计算所有奇异向量。 (阅读 doc)

如果你想计算所有这些,你可以使用 svd的参数 nunv .

例如,在您的情况下:

s = svd(M, nv = 5)

查看:
dim(s$v)
# [1] 5 5

s$u %*% cbind(diag(s$d), rep(0,4)) %*% t(s$v)
# You get M.

更一般地,您可以通过以下方式获得所有奇异向量:
s = svd(M, nu = nrow(M), nv = ncol(M))

关于r - R中的奇异值分解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40191618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com