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"
)长度为n
的numeric
向量,包含(原始) 条目,允许从相关矩阵重建协方差矩阵。
扩展
类"dsyMatrix"
, 直接地。
课程"dgeMatrix"
,"symmetricMatrix"
,以及更多按类别分类的内容"dsyMatrix"
.
方法
- 胆
-
signature(x = "dpoMatrix")
:返回(并存储)x
的 Cholesky 分解,请参阅chol
。 - 行列式
-
signature(x = "dpoMatrix")
:通过chol(x)
返回x
的determinant
,请参见上文。 - 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))
也可以看看
类dsyMatrix
和dgeMatrix
;此外,Matrix
、rcond
、chol
、solve
、crossprod
。
相关用法
- R dtrMatrix-class 三角形稠密数值矩阵
- R dgCMatrix-class 压缩、稀疏、面向列的数值矩阵
- R diagonalMatrix-class 对角矩阵的“diagonalMatrix”类
- R dsRMatrix-class 对称稀疏压缩行矩阵
- R dsCMatrix-class 数值对称稀疏(列压缩)矩阵
- R diagU2N 将三角矩阵从单位三角形变换到一般三角形并返回
- R dgTMatrix-class 三元组形式的稀疏矩阵
- R dimScale 缩放矩阵的行和列
- R ddiMatrix-class 对角数值矩阵的“ddiMatrix”类
- R dmperm Dulmage-Mendelsohn 排列/分解
- R dtpMatrix-class 填充三角密集矩阵 - “dtpMatrix”
- R dtCMatrix-class 三角形(压缩)稀疏列矩阵
- R drop0 从稀疏矩阵中删除非结构零
- R dtRMatrix-class 三角形稀疏压缩行矩阵
- R denseMatrix-class 所有密集矩阵的虚拟类“denseMatrix”
- R ddenseMatrix-class 数值密集矩阵的虚拟类“ddenseMatrix”
- R dsyMatrix-class 对称密集(压缩或非压缩)数值矩阵
- R dsparseMatrix-class 数值稀疏矩阵的虚拟类“dsparseMatrix”
- R dMatrix-class (虚拟)“双”矩阵的“dMatrix”类
- R facmul-methods 乘以矩阵因式分解的因数
- R solve-methods 函数求解矩阵包中的方法
- R updown-methods 更新和降级稀疏 Cholesky 分解
- R bdiag 构建分块对角矩阵
- R printSpMatrix 灵活格式化和打印稀疏矩阵
- R symmetricMatrix-class 包矩阵中对称矩阵的虚拟类
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Positive Semi-definite Dense (Packed | Non-packed) Numeric Matrices。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。