当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R dpoMatrix-class 正半定稠密(压缩|非压缩)数值矩阵


R语言 dpoMatrix-class 位于 Matrix 包(package)。

说明

  • "dpoMatrix" 类是非压缩存储中的正半定对称矩阵类。

  • 除了打包存储之外,"dppMatrix" 类是相同的。仅需要上三角形或下三角形可用。

  • "corMatrix""pcorMatrix" 类表示相关矩阵。它们分别扩展了 "dpoMatrix""dppMatrix" ,并添加了一个附加槽 sd ,允许恢复原始协方差矩阵。

类中的对象

可以通过调用 new("dpoMatrix", ...) 形式或从应用于 "dgeMatrix" 对象的 crossprod 来创建对象。

插槽

uplo

"character" 的对象。对于上三角,必须是"U",对于下三角,必须是"L"。

x

"numeric" 的对象。构成矩阵的数值,按列优先顺序存储。

Dim

"integer" 的对象。矩阵的维度必须是非负整数的二元素向量。

Dimnames

从类"Matrix"继承

factors

"list" 的对象。已为矩阵计算的分解的命名列表。

sd

(对于 "corMatrix""pcorMatrix" )长度为 nnumeric 向量,包含(原始) 条目,允许从相关矩阵重建协方差矩阵。

扩展

"dsyMatrix", 直接地。
课程"dgeMatrix","symmetricMatrix",以及更多按类别分类的内容"dsyMatrix".

方法

signature(x = "dpoMatrix") :返回(并存储)x 的 Cholesky 分解,请参阅 chol

行列式

signature(x = "dpoMatrix") :通过 chol(x) 返回 xdeterminant ,请参见上文。

rcond

signature(x = "dpoMatrix", norm = "character") :返回(并存储)x 的条件数的倒数。 norm 对于 one-norm(默认)可以是 "O",对于 infinity-norm 可以是 "I"。对于对称矩阵,结果不依赖于范数。

解决

signature(a = "dpoMatrix", b = "....")

, 和

解决

signature(a = "dppMatrix", b = "....")

通过 Cholesky 组合进行工作,另请参阅矩阵 solve-methods

阿里斯

signature(e1 = "dpoMatrix", e2 = "numeric")(以及相当多的其他签名):(“elementwise” 定义)算术运算的结果通常不再是正定的。目前,唯一的例外是与正 length(.) == 1 数(或 logical )进行乘法、除法或加法。

注意

目前,出于效率原因,这些类(例如getValidity(getClass("dpoMatrix")))的有效性方法仅检查矩阵的对角线条目 - 它们可能不是负数。对于半正定对称矩阵来说,这只是必要的,但还不够。

更可靠(但通常更昂贵)的正 semi-definiteness 检查会查看 diag(BunchKaufman(.)) 的符号(对非常小的负值有一定的容忍度),以及类似 !inherits(tryCatch(chol(.), error=identity), "error") 的(严格)正定性。事实上,当强制到这些类时,通常使用 Cholesky()chol() 的版本,例如,参见 selectMethod("coerce", c(from="dsyMatrix", to="dpoMatrix"))

例子


h6 <- Hilbert(6)
rcond(h6)
str(h6)
h6 * 27720 # is ``integer''
solve(h6)
str(hp6 <- as(h6, "dppMatrix"))

### Note that  as(*, "corMatrix")  *scales* the matrix
(ch6 <- as(h6, "corMatrix"))
stopifnot(all.equal(h6 * 27720, round(27720 * h6), tolerance = 1e-14),
          all.equal(ch6@sd^(-2), 2*(1:6)-1, tolerance= 1e-12))
chch <- Cholesky(ch6, perm = FALSE)
stopifnot(identical(chch, ch6@factors$Cholesky),
          all(abs(crossprod(as(chch, "dtrMatrix")) - ch6) < 1e-10))

也可以看看

dsyMatrixdgeMatrix ;此外,Matrixrcondcholsolvecrossprod

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Positive Semi-definite Dense (Packed | Non-packed) Numeric Matrices。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。