gpt4 book ai didi

r - R 和 MATLAB 中不同的 SVD 结果

转载 作者:行者123 更新时间:2023-12-02 09:21:54 25 4
gpt4 key购买 nike

我是 R 新手,正在尝试矩阵的 SVD。当我与 MATLAB 交叉检查时,SVD 的 V 矩阵显示出不同的结果。有没有我遗漏的解释或者我在 R 编程中做错了一些事情。以下是 R 和 MATLAB 的屏幕截图。然而 U 和 D 矩阵是相似的

SVD with R

SVD with MATLAB

最佳答案

svd 可以接受nunv指定 U 大小的参数和V发射。这些默认为 min(# of rows, # of cols) ,这意味着 R 中的 SVD 默认为“瘦身”或经济模式 SVD,而 Matlab 默认为完整 SVD,除非您要求瘦身版本。

以下是如何获取完整的V :S = svd(M, nu=3, nv=4) 。更一般地说,nu=nrow(M)nv=ncol(M) .

完整示例:

> M = matrix(c(2,3,4,5,1,2,3,4,0,1,2,3), nrow=3, ncol=4)
> M
[,1] [,2] [,3] [,4]
[1,] 2 5 3 1
[2,] 3 1 4 2
[3,] 4 2 0 3
> S = svd(M, nu=3, nv=4)
> S$u
[,1] [,2] [,3]
[1,] 0.6486710 0.63810301 0.4147897
[2,] 0.5607706 -0.03225566 -0.8273427
[3,] 0.5145506 -0.76927506 0.3787527
> S$d
[1] 8.790352 3.524115 2.882763
> S$v
[,1] [,2] [,3] [,4]
[1,] 0.5731120 -0.5384787 -0.04767577 -0.61588176
[2,] 0.5498331 0.4596073 0.69520488 0.05598925
[3,] 0.4765560 0.5065914 -0.71632725 0.05598925
[4,] 0.3769888 -0.4921046 -0.03595079 0.78384952

在这种情况下,Matlab 和 R SVD 匹配! (一般来说,它们不需要匹配,因为 UV 的任何旋转也是 SVD。)

关于r - R 和 MATLAB 中不同的 SVD 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41972419/

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