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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。