Schur-class
位於 Matrix
包(package)。 說明
Schur
是 實數矩陣 的 Schur 分解類,具有一般形式
其中 是正交矩陣, 是塊上三角矩陣,其中 或 對角塊指定 的實數和複數共軛特征值。 的列向量是 的 Schur 向量, 是 的 Schur 形式。
Schur 分解將普通矩陣 (其 Schur 形式為塊對角線)的譜分解推廣為任意方陣。
細節
矩陣 及其Schur 形式 相似,因此具有相同的頻譜。特征值被簡單地計算為 的對角線塊的特征值。
插槽
Dim
,Dimnames
-
從虛擬類
MatrixFactorization
繼承。 Q
-
正交矩陣,繼承自虛擬類
Matrix
。 T
-
塊上三角矩陣,繼承自虛擬類
Matrix
。對角塊的尺寸為 1×1 或 2×2。 EValues
-
包含
T
對角線塊的特征值的數值或複數向量,它們是T
的特征值,因此也是分解矩陣的特征值。
擴展
直接類 SchurFactorization
。類 MatrixFactorization
,按類 SchurFactorization
,距離 2。
實例化
對象可以通過 new("Schur", ...)
形式的調用直接生成,但它們更通常作為繼承自 Matrix
(通常是 dgeMatrix
)的 x
的 Schur(x)
值獲得。
方法
determinant
-
signature(from = "Schur", logarithm = "logical")
:計算因式分解矩陣 的行列式或其對數。 expand1
-
signature(x = "Schur")
:參見expand1-methods
。 expand2
-
signature(x = "Schur")
:參見expand2-methods
。 solve
-
signature(a = "Schur", b = .)
:參見solve-methods
。
例子
showClass("Schur")
set.seed(0)
n <- 4L
(A <- Matrix(rnorm(n * n), n, n))
## With dimnames, to see that they are propagated :
dimnames(A) <- list(paste0("r", seq_len(n)),
paste0("c", seq_len(n)))
(sch.A <- Schur(A))
str(e.sch.A <- expand2(sch.A), max.level = 2L)
## A ~ Q T Q' in floating point
stopifnot(exprs = {
identical(names(e.sch.A), c("Q", "T", "Q."))
all.equal(A, with(e.sch.A, Q %*% T %*% Q.))
})
## Factorization handled as factorized matrix
b <- rnorm(n)
stopifnot(all.equal(det(A), det(sch.A)),
all.equal(solve(A, b), solve(sch.A, b)))
## One of the non-general cases:
Schur(Diagonal(6L))
參考
The LAPACK source code, including documentation; see https://netlib.org/lapack/double/dgees.f.
Golub, G. H., & Van Loan, C. F. (2013). Matrix computations (4th ed.). Johns Hopkins University Press. doi:10.56021/9781421407944
也可以看看
相關用法
- R Schur-methods Schur 分解方法
- R Subassign-methods “[<-”的方法 - 分配給“矩陣”的子集
- R Subscript-methods “[”的方法:在“Matrix”包中提取或取子集
- 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 ltrMatrix-class 三角密集邏輯矩陣
- R Hilbert 生成希爾伯特矩陣
- R nearPD 最近正定矩陣
- R lsyMatrix-class 對稱密集邏輯矩陣
- R CHMfactor-class 稀疏 Cholesky 分解
- R symmpart-methods 矩陣的對稱部分和偏斜(對稱)部分
- R sparseMatrix 從非零項構建一般稀疏矩陣
- R dgCMatrix-class 壓縮、稀疏、麵向列的數值矩陣
- R Cholesky-methods Cholesky 分解方法
- R ldenseMatrix-class 密集邏輯矩陣的虛擬類“ldenseMatrix”
- R norm-methods 矩陣範數
- R ngeMatrix-class 一般密集非零模式矩陣的“ngeMatrix”類
- R CAex 阿爾伯斯的示例矩陣與“困難”特征分解
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Schur Factorizations。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。