r语言 - 矩阵的特征值,假设对称



我试图在 Julia 中找到以下 2 X 2 矩阵(等于 a(的特征值:

2×2 Array{Float64,2}:
0.120066  0.956959
0.408367  0.422321

我在 R 中有相同的数组,运行以下 R 命令我得到此输出:

eigen(a, symmetric=T, only.values=T)
$values
[1]  0.706626 -0.164245

但是,在 Julia 中,当我运行此命令时,我得到以下输出:

eigvals(LowerTriangular(a))
2-element Array{Float64,1}:
0.120066
0.422321

有没有办法复制 Julia 中对称矩阵的 R eigen() 函数,因为我使用 LowerTriangular 函数的方式不起作用?

像这样使用Symmetric函数:

julia> eigvals(Symmetric(x, :L))
2-element Array{Float64,1}:
 -0.164241
  0.706628

从 Julia 0.7 开始,您将不得不使用 using LinearAlgebra 来导入函数。

> x
         [,1]     [,2]
[1,] 0.120066 0.956959
[2,] 0.408367 0.422321

在 Julia 中,eigvals(LowerTriangular(a))计算x下三角形部分的特征值(即严格上三角形部分的条目设置为 0(:

> xx <- x
> xx[1,2] <- 0
> eigen(xx, only.values = TRUE)
$values
[1] 0.422321 0.120066 # same as Julia

在 R 中,eigen(x, symmetric=TRUE)假设x是对称的,并采用较低的三角形部分来派生其他条目:

> xx <- x
> xx[1,2] <- x[2,1]
> eigen(xx, only.values = TRUE)
$values
[1]  0.7066279 -0.1642409
> eigen(x, only.values = TRUE, symmetric = TRUE)
$values
[1]  0.7066279 -0.1642409

相关内容

  • 没有找到相关文章

最新更新