如何求R中矩阵的平方根

如何求R中矩阵的平方根,r,R,假设有一个主矩阵a 我们想要找到一个矩阵B,这样: B %*% B %*% B %*% B = A 其中,%*%是R中的矩阵积 理想的结果是矩阵B。你试过用谷歌搜索吗包expm中存在sqrtm函数 详细信息 # NOT RUN { library(expm) m <- diag(2) sqrtm(m) == m # TRUE (m <- rbind(cbind(1, diag(1:3)),2)) sm <- sqrtm(m) sm zapsmall(sm %*% sm)

假设有一个主矩阵a

我们想要找到一个矩阵B,这样:

B %*% B %*% B %*% B = A
其中,
%*%
是R中的矩阵积


理想的结果是矩阵B。

你试过用谷歌搜索吗
expm
中存在
sqrtm
函数

详细信息

# NOT RUN {
library(expm)

m <- diag(2)
sqrtm(m) == m # TRUE

(m <- rbind(cbind(1, diag(1:3)),2))
sm <- sqrtm(m)
sm
zapsmall(sm %*% sm) # Zap entries ~= 2e-16
stopifnot(all.equal(m, sm %*% sm))
# }
M的矩阵平方根S,
S=sqrtm(M)
被定义为一个(主体)S,使得SS=S2=M,(在R中,
all.equal(S%*%S,M)
)。 该方法从舒尔分解开始工作

示例

# NOT RUN {
library(expm)

m <- diag(2)
sqrtm(m) == m # TRUE

(m <- rbind(cbind(1, diag(1:3)),2))
sm <- sqrtm(m)
sm
zapsmall(sm %*% sm) # Zap entries ~= 2e-16
stopifnot(all.equal(m, sm %*% sm))
# }
#未运行{
图书馆(expm)

m您是否尝试用谷歌搜索它?
在包
expm
中有一个
sqrtm
函数

详细信息

# NOT RUN {
library(expm)

m <- diag(2)
sqrtm(m) == m # TRUE

(m <- rbind(cbind(1, diag(1:3)),2))
sm <- sqrtm(m)
sm
zapsmall(sm %*% sm) # Zap entries ~= 2e-16
stopifnot(all.equal(m, sm %*% sm))
# }
M的矩阵平方根S,
S=sqrtm(M)
被定义为一个(主体)S,使得SS=S2=M,(在R中,
all.equal(S%*%S,M)
)。 该方法从舒尔分解开始工作

示例

# NOT RUN {
library(expm)

m <- diag(2)
sqrtm(m) == m # TRUE

(m <- rbind(cbind(1, diag(1:3)),2))
sm <- sqrtm(m)
sm
zapsmall(sm %*% sm) # Zap entries ~= 2e-16
stopifnot(all.equal(m, sm %*% sm))
# }
#未运行{
图书馆(expm)

m你描述的是第四个根,不是平方根。要得到平方根,只要做
sqrt(A)
。对于第四个根,做
A^(1/4)
。这很简单。@Thomas,关于第四个根与平方根的比较,你是对的,如果OP讨论的是矩阵的元素(Hadamard)乘法,你是对的,但是我认为(他们可以澄清)他们真正的意思是指矩阵乘法,即在R格式中
B%*%B%*%B%*%B%*%*%==A
,而不是
B*B*B==A
,在这种情况下,他们需要A(重复)根据@Shreyos_Adikari的回答所描述的矩阵平方根。OP:请根据我上面的评论澄清!@BenBolker你是对的。user3508921请你澄清一点。非常抱歉,我还在学习如何正确地在这里写问题。是的,我指的是第四个平方根,但谈论的是矩阵的乘法,而不是元素按元素。我想要一个矩阵,它自身乘以四次(B%*%B%*%B%*%B),得到我已有的矩阵(a)你描述的是第四个根,而不是平方根。要得到平方根,只需执行
sqrt(a)
。对于第四个根,执行
a^(1/4)
。这很简单。@Thomas,关于四次方根和平方根,你是对的,如果OP讨论的是矩阵的元素(Hadamard)乘法,你是对的,但我认为(他们可以澄清)他们真正的意思是指矩阵乘法,即在R格式中
B%*%B%*%B%*%B%*%==A
,而不是
B*B*B==A
,在这种情况下,他们需要A(重复)根据@Shreyos_Adikari的回答所描述的矩阵平方根。OP:请根据我上面的评论澄清!@BenBolker你是对的。user3508921请你澄清一点。非常抱歉,我还在学习如何正确地在这里写问题。是的,我指的是第四个平方根,但谈论的是矩阵的乘法,而不是元素按元素。我想要一个矩阵,它被自身乘以四次(B%*%B%*%B%*%B),得到我已有的矩阵(a)请不要链接,只回答问题。因此,您的函数
sqrtm
位于
expm
中,仅适用于方阵。此处,情况未知。--您的第一个链接被重定向到不相关的位置。请不要链接,只回答问题。因此,您的函数
sqrtm
位于
expm
中,仅适用于方阵。此处案例未知。--您的第一个链接被重定向到不相关的地方。