lu-methods
位於 Matrix
包(package)。 說明
計算 實數矩陣 的旋轉 LU 分解,其具有一般形式
或(等效地)
其中 是 置換矩陣, 是 置換矩陣, 是 單位下梯形矩陣, 是 上梯形矩陣。
denseMatrix
的方法基於 LAPACK 例程 dgetrf
構建,該例程不會置換列,因此 是單位矩陣。
sparseMatrix
的方法基於 CSparse 例程 cs_lu
構建,該例程需要 ,因此 和 是三角矩陣。
用法
lu(x, ...)
## S4 method for signature 'dgeMatrix'
lu(x, warnSing = TRUE, ...)
## S4 method for signature 'dgCMatrix'
lu(x, errSing = TRUE, order = NA_integer_,
tol = 1, ...)
## S4 method for signature 'dsyMatrix'
lu(x, cache = TRUE, ...)
## S4 method for signature 'dsCMatrix'
lu(x, cache = TRUE, ...)
## S4 method for signature 'matrix'
lu(x, ...)
參數
x |
|
warnSing |
一個邏輯,指示是否應針對單數 |
errSing |
一個邏輯,指示是否應針對單數 |
order |
|
tol |
一個號碼。如果原始主元元素的絕對值超過 |
cache |
指示結果是否應緩存在 |
... |
傳入或傳出方法的更多參數。 |
細節
當 x
被確定為 near-singular 時發生的情況因方法而異。類 dgeMatrix
的方法完成因式分解,如果 warnSing = TRUE
則發出警告,並且在任何情況下返回有效的 denseLU
對象。使用此方法的用戶可以使用合適的警告處理程序來檢測奇異的x
;請參閱tryCatch
。相反,類 dgCMatrix
的方法放棄進一步計算,如果 errSing = TRUE
則拋出錯誤,否則返回 NA
。此方法的用戶可以使用錯誤處理程序或通過設置 errSing = FALSE
並使用 is(., "sparseLU")
測試正式結果來檢測單個 x
。
值
表示分解的對象,繼承自虛擬類 LU
。特定類是 denseLU
,除非 x
繼承自虛擬類 sparseMatrix
,在這種情況下它是 sparseLU
。
例子
showMethods("lu", inherited = FALSE)
set.seed(0)
## ---- Dense ----------------------------------------------------------
(A1 <- Matrix(rnorm(9L), 3L, 3L))
(lu.A1 <- lu(A1))
(A2 <- round(10 * A1[, -3L]))
(lu.A2 <- lu(A2))
## A ~ P1' L U in floating point
str(e.lu.A2 <- expand2(lu.A2), max.level = 2L)
stopifnot(all.equal(A2, Reduce(`%*%`, e.lu.A2)))
## ---- Sparse ---------------------------------------------------------
A3 <- as(readMM(system.file("external/pores_1.mtx", package = "Matrix")),
"CsparseMatrix")
(lu.A3 <- lu(A3))
## A ~ P1' L U P2' in floating point
str(e.lu.A3 <- expand2(lu.A3), max.level = 2L)
stopifnot(all.equal(A3, Reduce(`%*%`, e.lu.A3)))
參考
The LAPACK source code, including documentation; see https://netlib.org/lapack/double/dgetrf.f.
Davis, T. A. (2006). Direct methods for sparse linear systems. Society for Industrial and Applied Mathematics. doi:10.1137/1.9780898718881
Golub, G. H., & Van Loan, C. F. (2013). Matrix computations (4th ed.). Johns Hopkins University Press. doi:10.56021/9781421407944
也可以看看
通用函數 expand1
和 expand2
,用於根據結果構造矩陣因子。
通用函數 Cholesky
、 BunchKaufman
、 Schur
和 qr
用於計算其他因式分解。
相關用法
- R ltrMatrix-class 三角密集邏輯矩陣
- R lsyMatrix-class 對稱密集邏輯矩陣
- R ldenseMatrix-class 密集邏輯矩陣的虛擬類“ldenseMatrix”
- R lgeMatrix-class 一般稠密邏輯矩陣的“lgeMatrix”類
- R ldiMatrix-class 對角邏輯矩陣的“ldiMatrix”類
- R lsparseMatrix-classes 稀疏邏輯矩陣
- R dtrMatrix-class 三角形稠密數值矩陣
- R facmul-methods 乘以矩陣因式分解的因數
- R solve-methods 函數求解矩陣包中的方法
- R updown-methods 更新和降級稀疏 Cholesky 分解
- R bdiag 構建分塊對角矩陣
- R printSpMatrix 靈活格式化和打印稀疏矩陣
- R symmetricMatrix-class 包矩陣中對稱矩陣的虛擬類
- R all.equal-methods 函數 all.equal() 的矩陣封裝方法
- R boolmatmult-methods 布爾算術矩陣乘積:%&% 和方法
- R Hilbert 生成希爾伯特矩陣
- R nearPD 最近正定矩陣
- R CHMfactor-class 稀疏 Cholesky 分解
- R symmpart-methods 矩陣的對稱部分和偏斜(對稱)部分
- R sparseMatrix 從非零項構建一般稀疏矩陣
- R dgCMatrix-class 壓縮、稀疏、麵向列的數值矩陣
- R Cholesky-methods Cholesky 分解方法
- R Subassign-methods “[<-”的方法 - 分配給“矩陣”的子集
- R norm-methods 矩陣範數
- R ngeMatrix-class 一般密集非零模式矩陣的“ngeMatrix”類
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Methods for LU Factorization。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。