sechol {accuracy} | R Documentation

## Schnabel-Eskow Choleksy Decomposition

### Description

Perform the Schnabel-Eskow Choleksy Matrix Decomposition

### Usage

    sechol(A, tol=.Machine$double.eps, silent=TRUE)

### Arguments

`A` | a square matrix object which can be non-singular.
`tol` | a tolerance parameter
`silent` | print debugging messages

### Details

The algorithm of Schnabel and Eskow (Schnabel, R. B. and Eskow, E. 1990. "A New Modified Cholesky Factorization." SIAM Journal of Scientific Statistical Computing 11, 1136-58.) improves the Gill/Murray approach of incrementing diagonal values of a singular matrix sufficiently that Cholesky steps can be performed. The algorithm is based on applying the Gerschgorin Circle Theorem to reduce the infinity norm of the incrementing matrix. The strategy is to calculate delta values that reduce the overall difference between the singular matrix and the incremented matrix.

### Value

A Cholesky decomposition of the matrix C+E where C is the original non-singular matrix and E is the minimal diagonal increment according to the Gerschgorin Circle Theorem. If the input matrix is non-singular, then the Cholesky decomposition of C is returned.

### Author(s)

Jeff Gill

### References

Schnabel, R. B. and Eskow, E. 1990. "A New Modified Cholesky Factorization." SIAM Journal of Scientific Statistical Computing 11, 1136-58.

Altman, M., J. Gill and M. P. McDonald. 2003. Numerical Issues in Statistical Computing for the Social Scientist. John Wiley & Sons. http://www.hmdc.harvard.edu/numerical_issues/

### See Also

`ginv` `solve` `chol` `svd` `qr`

### Examples

    # compare with chol() on a non-singular matrix
    S <- matrix(c(2,0,2.4,0,2,0,2.4,0,3),ncol=3)
    chol(S)
    TS<- sechol(S)
    TS
    t(TS)

    # an example with a singular matrix
    S <- matrix(c(2,0,2.5,0,2,0,2.5,0,3),ncol=3)
    TS<-sechol(S)
    TS
    t(TS)

    # another example with a singular matrix
    S <- matrix(c(2,0,10,0,2,0,10,0,3),ncol=3)
    TS <- sechol(S)
    TS
    t(TS)

[Package accuracy version 1.35 Index]