R: Compute Approximate CONDition number and 1-Norm of (Large)...

condest {Matrix} | R Documentation

## Compute Approximate CONDition number and 1-Norm of (Large) Matrices

### Description

“Estimate”, i.e. compute approximately the CONDition number of a (potentially large, often sparse) matrix `A`. It works by apply a fast approximation of the 1-norm, `norm(A,"1")`, through `onenormest(.)`.

### Usage

    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)

### Arguments

`A` | a square matrix, optional for `onenormest()`, where instead of `A`, `A.x` and `At.x` can be specified, see there.
`t` | number of columns to use in the iterations.
`normA` | number; (an estimate of) the 1-norm of `A`, by default `norm(A, "1")`; may be replaced by an estimate.
`silent` | logical indicating if warning and (by default) convergence messages should be displayed.
`quiet` | logical indicating if convergence messages should be displayed.
`A.x, At.x` | when `A` is missing, these two must be given as functions which compute `A %% x`, or `t(A) %% x`, respectively.
`n` | `== nrow(A)`, only needed when `A` is not specified.
`iter.max` | maximal number of iterations for the 1-norm estimator.
`eps` | the relaive change that is deemed irrelevant.

### Value

Both functions return a `list`; `onenormest()` with components,

`est` | a number > 0, the estimated `norm(A, "1")`.
`v` | the maximal A X column.

The function `condest()` returns a list with components,

`est` | a number > 0, the estimated condition number k.; when r :=`rcond(A)`, 1/k. ~= r.
`v` | integer vector length `n`, with an `1` at the index `j` with maximal column `A[,j]` in A.
`w` | numeric vector, the largest A x found.
`iter` | the number of iterations used.

### Author(s)

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.

### References

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. http://dx.doi.org/10.1137/S0895479899356080

William W. Hager (1984). Condition Estimates. SIAM J. Sci. Stat. Comput. 5, 311–316.

### See Also

`norm`, `rcond`.

### Examples

    data(KNex)
    mtm <- with(KNex, crossprod(mm))
    system.time(ce <- condest(mtm))
    ## 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

[Package Matrix version 1.0-6 Index]