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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。