當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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