Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R PSD(半正定)矩阵的平方根逆_R - Fatal编程技术网

R PSD(半正定)矩阵的平方根逆

R PSD(半正定)矩阵的平方根逆,r,R,假设我有一个半正定矩阵S,我想得到这个矩阵的平方根的逆,也就是S^(-1/2) 我可以这样做吗 ei <- eigen(S) V <- ei$vectors res <- V %*% diag(1 / sqrt(ei$values)) %*% t(V) ei是。我们可以很容易地以S为例,检查S乘以res乘以res是否为单位矩阵: set.seed(123) S <- crossprod(matrix(rnorm(9), 3)) ei <- eigen(S) V

假设我有一个半正定矩阵
S
,我想得到这个矩阵的平方根的逆,也就是
S^(-1/2)

我可以这样做吗

ei <- eigen(S)
V <- ei$vectors
res <- V %*% diag(1 / sqrt(ei$values)) %*% t(V)

ei是。我们可以很容易地以S为例,检查S乘以res乘以res是否为单位矩阵:

set.seed(123)
S <- crossprod(matrix(rnorm(9), 3))

ei <- eigen(S)
V <- ei$vectors
res <- V %*% diag(1 / sqrt(ei$values)) %*% t(V)

S %*% res %*% res
##             [,1]        [,2]        [,3]
## [1,]  1.0000e+00 -2.3731e-15 -1.6653e-16
## [2,]  3.3346e-15  1.0000e+00 -6.6613e-16
## [3,] -1.0235e-16  8.3267e-16  1.0000e+00
set.seed(123)

S如果根据OP的询问,输入矩阵是半正定的(而不是正定的),其特征值不会全部为正,并且上述答案中给出的方法将失败,因为

diag(1 / sqrt(ei$values))
将不是一个有限矩阵