kappa {base}
Description
The condition number of a regular (square) matrix is the product of the norm of the matrix and the norm of its inverse (or pseudo-inverse), and hence depends on the kind of matrix-norm.
kappa() computes by default (an estimate of) the 2-norm condition number of a matrix or of the R matrix of a QR decomposition, perhaps of a linear fit. The 2-norm condition number can be shown to be the ratio of the largest to the smallest non-zero singular value of the matrix.
rcond() computes an approximation of the reciprocal condition number, see the details.
Usage
kappa(z, ...)
## S3 method for class 'default':
kappa((z, exact = FALSE,
norm = NULL, method = c("qr", "direct"), ...))
## S3 method for class 'lm':
kappa((z, ...))
## S3 method for class 'qr':
kappa((z, ...)
.kappa_tri(z, exact = FALSE, LINPACK = TRUE, norm = NULL, ...)
rcond(x, norm = c("O","I","1"), triangular = FALSE, ...))
Arguments
- z, x
- A matrix or a the result of
qror a fit from a class inheriting from"lm". - exact
- logical. Should the result be exact?
- norm
- character string, specifying the matrix norm with respect to which the condition number is to be computed, see also
norm. Forrcond, the default is"O", meaning the One- or 1-norm. The (currently only) other possible value is"I"for the infinity norm. - method
- character string, specifying the method to be used;
"qr"is default for back-compatibility, mainly. - triangular
- logical. If true, the matrix used is just the lower triangular part of
z. - LINPACK
- logical. If true and
zis not complex, the Linpack routinedtrco()is called; otherwise the relevant Lapack routine is. - ...
- further arguments passed to or from other methods; for
kappa.*(), notablyLINPACKwhennormis not"2".
Details
For kappa(), if exact = FALSE (the default) the 2-norm condition number is estimated by a cheap approximation. However, the exact calculation (via svd) is also likely to be quick enough.
Note that the 1- and Inf-norm condition numbers are much faster to calculate, and rcond() computes these reciprocal condition numbers, also for complex matrices, using standard Lapack routines.
kappa and rcond are different interfaces to partly identical functionality.
.kappa_tri is an internal function called by kappa.qr and kappa.default.
Values
The condition number, kappa, or an approximation if exact = FALSE.
References
Anderson. E. and ten others (1999) LAPACK Users' Guide. Third Edition. SIAM.
Available on-line at http://www.netlib.org/lapack/lug/lapack_lug.html. Chambers, J. M. (1992) Linear models. Chapter 4 of Statistical Models in S eds J. M. Chambers and T. J. Hastie, Wadsworth & Brooks/Cole.
Dongarra, J. J., Bunch, J. R., Moler, C. B. and Stewart, G. W. (1978) LINPACK Users Guide. Philadelphia: SIAM Publications.
Examples
kappa(x1 <- cbind(1, 1:10)) # 15.71 kappa(x1, exact = TRUE) # 13.68 kappa(x2 <- cbind(x1, 2:11)) # high! [x2 is singular!] hilbert <- function(n) { i <- 1:n; 1 / outer(i - 1, i, "+") } sv9 <- svd(h9 <- hilbert(9))$ d kappa(h9) # pretty high! kappa(h9, exact = TRUE) == max(sv9) / min(sv9) kappa(h9, exact = TRUE) / kappa(h9) # 0.677 (i.e., rel.error = 32%)
Documentation reproduced from R 2.15.3. License: GPL-2.
