condest
位於 Matrix
包(package)。 說明
“Estimate”,即近似計算(可能很大,通常稀疏)矩陣 A
的 CONDition 數。它的工作原理是應用 1-範數 norm(A,"1")
到 onenormest(.)
的快速隨機近似。
用法
condest(A, t = min(n, 5), normA = norm(A, "1"),
silent = FALSE, quiet = TRUE)
onenormest(A, t = min(n, 5), A.x, At.x, n,
silent = FALSE, quiet = silent,
iter.max = 10, eps = 4 * .Machine$double.eps)
參數
A |
方陣,對於 |
t |
迭代中使用的列數。 |
normA |
數字; |
silent |
邏輯指示是否應顯示警告和(默認情況下)收斂消息。 |
quiet |
邏輯指示是否應顯示收斂消息。 |
A.x , At.x |
當 |
n |
|
iter.max |
1-範數估計器的最大迭代次數。 |
eps |
被認為不相關的相對變化。 |
細節
condest()
調用 lu(A)
,隨後調用 onenormest(A.x = , At.x = )
來計算 A
、 的逆的近似範數,從而在 A
稀疏時保持有效使用稀疏矩陣。
請注意, onenormest()
使用隨機向量,因此兩個函數的結果都是隨機的,即取決於隨機種子,請參見 set.seed()
。
值
兩個函數都返回 list
; condest()
帶有組件,
est |
數字 |
v |
最大 |
函數 onenormest()
返回一個包含組件的列表,
est |
一個數字 |
v |
0-1 整數向量長度 |
w |
數值向量,找到的最大的 。 |
iter |
使用的迭代次數。 |
例子
data(KNex, package = "Matrix")
mtm <- with(KNex, crossprod(mm))
system.time(ce <- condest(mtm))
sum(abs(ce$v)) ## || v ||_1 == 1
## Prove that || A v || = || A || / est (as ||v|| = 1):
stopifnot(all.equal(norm(mtm %*% ce$v),
norm(mtm) / ce$est))
## reciprocal
1 / ce$est
system.time(rc <- rcond(mtm)) # takes ca 3 x longer
rc
all.equal(rc, 1/ce$est) # TRUE -- the approxmation was good
one <- onenormest(mtm)
str(one) ## est = 12.3
## the maximal column:
which(one$v == 1) # mostly 4, rarely 1, depending on random seed
作者
This is based on octave's condest()
and
onenormest()
implementations with original author
Jason Riedy, U Berkeley; translation to R and
adaption by Martin Maechler.
參考
Nicholas J. Higham and Françoise Tisseur (2000). A Block Algorithm for Matrix 1-Norm Estimation, with an Application to 1-Norm Pseudospectra. SIAM J. Matrix Anal. Appl. 21, 4, 1185-1201.
William W. Hager (1984). Condition Estimates. SIAM J. Sci. Stat. Comput. 5, 311-316.
也可以看看
相關用法
- R coerce-methods-graph 轉換“圖”<–>(稀疏)矩陣
- R colSums-methods 形成行和列的總和及平均值
- R chol-methods 計算矩陣的 Cholesky 因子
- R chol2inv-methods 喬列斯基因子的逆
- R cbind2-methods 'cbind()' 和 'rbind()' 遞歸地構建在 cbind2/rbind2 上
- 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 Subassign-methods “[<-”的方法 - 分配給“矩陣”的子集
- R ldenseMatrix-class 密集邏輯矩陣的虛擬類“ldenseMatrix”
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Compute Approximate CONDition number and 1-Norm of (Large) Matrices。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。