找回密码
 注册
查看: 288|回复: 0

R语言 rstiefel包 rmf.matrix()函数中文帮助文档(中英文对照)

[复制链接]
发表于 2012-9-28 22:23:51 | 显示全部楼层 |阅读模式
rmf.matrix(rstiefel)
rmf.matrix()所属R语言包:rstiefel

                                         Simulate a Random Orthonormal Matrix
                                         模拟随机正交矩阵

                                         译者:生物统计家园网 机器人LoveR

描述----------Description----------

Simulate a random orthonormal matrix from the von Mises-Fisher distribution.
模拟一个随机正交矩阵·冯·米塞斯Fisher分布。


用法----------Usage----------


rmf.matrix(M)



参数----------Arguments----------

参数:M
a matrix.   
一个矩阵。


值----------Value----------

an orthonormal matrix of the same dimension as M.
一个标准正交矩阵的相同的尺寸M。


(作者)----------Author(s)----------



Peter Hoff




参考文献----------References----------



实例----------Examples----------


## The function is currently defined as[#功能目前被定义为]
Z<-matrix(rnorm(10*5),10,5)

U<-rmf.matrix(Z)
U<-rmf.matrix.gibbs(Z,U)


function (M)
{
    if (dim(M)[2] == 1) {
        X <- rmf.vector(M)
    }
    if (dim(M)[2] > 1) {
        svdM <- svd(M)
        H <- svdM$u %*% diag(svdM$d)
        m <- dim(H)[1]
        R <- dim(H)[2]
        cmet <- FALSE
        rej <- 0
        while (!cmet) {
            U <- matrix(0, m, R)
            U[, 1] <- rmf.vector(H[, 1])
            lr <- 0
            for (j in seq(2, R, length = R - 1)) {
                N <- NullC(U[, seq(1, j - 1, length = j - 1)])
                x <- rmf.vector(t(N) %*% H[, j])
                U[, j] <- N %*% x
                if (svdM$d[j] > 0) {
                  xn <- sqrt(sum((t(N) %*% H[, j])^2))
                  xd <- sqrt(sum(H[, j]^2))
                  lbr <- log(besselI(xn, 0.5 * (m - j - 1), expon.scaled = TRUE)) -
                    log(besselI(xd, 0.5 * (m - j - 1), expon.scaled = TRUE))
                  if (is.na(lbr)) {
                    lbr <- 0.5 * (log(xd) - log(xn))
                  }
                  lr <- lr + lbr + (xn - xd) + 0.5 * (m - j -
                    1) * (log(xd) - log(xn))
                }
            }
            cmet <- (log(runif(1)) < lr)
            rej <- rej + (1 - 1 * cmet)
        }
        X <- U %*% t(svd(M)$v)
    }
    X
  }

转载请注明:出自 生物统计家园网(http://www.biostatistic.net)。


注:
注1:为了方便大家学习,本文档为生物统计家园网机器人LoveR翻译而成,仅供个人R语言学习参考使用,生物统计家园保留版权。
注2:由于是机器人自动翻译,难免有不准确之处,使用时仔细对照中、英文内容进行反复理解,可以帮助R语言的学习。
注3:如遇到不准确之处,请在本贴的后面进行回帖,我们会逐渐进行修订。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-27 20:40 , Processed in 0.025656 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表