R 矩阵不';t作为正定传递

R 矩阵不';t作为正定传递,r,matrix,linear-algebra,R,Matrix,Linear Algebra,我有一个4x4矩阵,我相信它应该作为正定矩阵传递,但是使用is.positive.definite(),它的计算结果为false。当我使用nearPD()计算最近的正定矩阵时,结果矩阵的计算结果是正定的,即is.positive.definite(),但看起来是一样的 矩阵看起来像这样 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 其中x'Mx应计算为(x1+x2)^2+(x3+x4)^2,似乎满足正定条件 不管怎样,这是代码。有人知道我在这里遗漏了什么吗 libra

我有一个4x4矩阵,我相信它应该作为正定矩阵传递,但是使用is.positive.definite(),它的计算结果为false。当我使用nearPD()计算最近的正定矩阵时,结果矩阵的计算结果是正定的,即is.positive.definite(),但看起来是一样的

矩阵看起来像这样

 1 1 0 0
 1 1 0 0
 0 0 1 1
 0 0 1 1
其中x'Mx应计算为(x1+x2)^2+(x3+x4)^2,似乎满足正定条件

不管怎样,这是代码。有人知道我在这里遗漏了什么吗

library(Matrix)
library(matrixcalc)

D = rbind(c(1,1,0,0),c(1,1,0,0),c(0,0,1,1),c(0,0,1,1))

##evaluates false
is.positive.definite(D)

d = nearPD(D)$mat
d = matrix(d, nrow = 4)

## looks the same as D
d

##but evaluates to positive definite
is.positive.definite(d)

矩阵不是正定的

在线性代数中,如果zTMz对于n个实数的每个非零列向量z都是正的,则称对称n×n实矩阵M为正定矩阵

考虑向量(-1,1,-1,1)。它是非零的,只包含实数


但是(-1+1)^2+(-1+1)^2=0,不大于零。所以矩阵不是正定的。不过,矩阵是半正定的。

如果x1=-x2和x3=x4=0,则二次型计算为0。在哪个包中定义了函数
是正定的?啊,谢谢。看起来nearPD稍微调整了矩阵条目,条目仍然显示为1。(D-D)正在评估一些小数字。