r - 使用 LAPACK svd 的负奇异值

标签 r

我有一个 399 x 399 矩阵,R svd() 函数(使用 LAPACK)给我一个负奇异值!这不应该发生——以前有人见过吗?如果我使用 LINPACK 选项就不会发生这种情况,所以我猜这是 LAPACK svd 中的错误。

ganymede: R --vanilla

R version 2.15.1 (2012-06-22) -- "Roasted Marshmallows"
Copyright (C) 2012 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)

R is free software, etc ...

> load('A.dat')
> ls()
[1] "A"
> dim(A)
[1] 399 399
> 
> L1 <- svd(A)
> any( L1$d < 0 )
[1] TRUE
> L1$d[1:4]
[1] 80.18833 68.93905 61.62659 57.62883
> L1$d[396:399]
[1]  3.777844e-15  3.582460e-15  3.175665e-15 -6.512578e+00
> 
> L2 <- svd(A,LINPACK=TRUE)
> any( L2$d < 0 )
[1] FALSE
> L2$d[1:4]
[1] 80.18833 68.93905 61.62659 57.62883
> L2$d[396:399]
[1] 8.565532e-32 3.254162e-32 3.484425e-47 5.411232e-48
> 

最佳答案

根据 this bug report这个问题很可能通过重新链接到 LAPACK 3.4.1 来解决。升级通用版本 3.1.1 似乎很重要,具体过程取决于操作系统。

关于r - 使用 LAPACK svd 的负奇异值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11440394/

相关文章:

r - 在R中的某些字符之间提取文本

c++ - std0x 和非 std0x 之间的 Rcpp 不一致

从 data.table groupby 模型中恢复 lm() 结果

html - 从调色板设置背景后,如何使用 INLINE HTML 在深色背景上自动使文本变白

r - 如何显示R中删除的观测值的数量?

r - 添加自定义函数以在 dplyr 中进行汇总

r - 图像纹理 GLCM (mean_Envi)

r - 来自 2D 矩阵的 3D 曲面图

r - 使用 rPithon 包从 R 运行 Python 代码时出错

RMarkdown 代码评估直到命令