rbmf.O2(rstiefel)
rbmf.O2()所属R语言包:rstiefel
Simulate a 2*2 Orthogonal Random Matrix
模拟一个2 * 2的正交随机矩阵。
译者:生物统计家园网 机器人LoveR
描述----------Description----------
Simulate a 2*2 random orthogonal matrix from the Bingham-von Mises-Fisher distribution using a rejection sampler.
模拟一个2*2随机正交矩阵从宾汉·冯·米塞斯Fisher分布拒绝取样器。
用法----------Usage----------
rbmf.O2(A, B, C, env = FALSE)
参数----------Arguments----------
参数:A
a symmetric matrix.
一个对称矩阵。
参数:B
a diagonal matrix with decreasing entries.
下降条目的对角矩阵。
参数:C
a 2x2 matrix.
一个2×2矩阵。
参数:env
which rejection envelope to use, Bingham (bingham) or von Mises-Fisher (mf)?
拒绝信封,宾汉(bingham)或费舍尔·冯·米塞斯(mf)吗?
值----------Value----------
A random 2x2 orthogonal matrix simulated from the Bingham-von Mises-Fisher distribution.
模拟宾汉·冯·米塞斯Fisher分布的随机2x2的正交矩阵。
(作者)----------Author(s)----------
Peter Hoff
参考文献----------References----------
实例----------Examples----------
## The function is currently defined as[#功能目前被定义为]
function (A, B, C, env = FALSE)
{
sC <- svd(C)
d1 <- sum(sC$d)
eA <- eigen(A)
ab <- sum(eA$val * diag(B))
if (d1 <= ab | env == "bingham") {
lrmx <- sum(sC$d)
lr <- -Inf
while (lr < log(runif(1))) {
X <- rbing.O2(A, B, a = (eA$val[1] - eA$val[2]) *
(B[1, 1] - B[2, 2]), E = eA$vec)
lr <- sum(diag(t(X) %*% C)) - lrmx
}
}
if (d1 > ab | env == "mf") {
lrmx <- sum(eA$val * sort(diag(B), decreasing = TRUE))
lr <- -Inf
while (lr < log(runif(1))) {
X <- rmf.matrix(C)
lr <- sum(diag(B %*% t(X) %*% A %*% X)) - lrmx
}
}
X
}
转载请注明:出自 生物统计家园网(http://www.biostatistic.net)。
注:
注1:为了方便大家学习,本文档为生物统计家园网机器人LoveR翻译而成,仅供个人R语言学习参考使用,生物统计家园保留版权。
注2:由于是机器人自动翻译,难免有不准确之处,使用时仔细对照中、英文内容进行反复理解,可以帮助R语言的学习。
注3:如遇到不准确之处,请在本贴的后面进行回帖,我们会逐渐进行修订。
|