R: Choleski decomposition of a tri-diagonal matrix

trichol {mgcv} | R Documentation

## Choleski decomposition of a tri-diagonal matrix

### Description

Computes Choleski decomposition of a (symmetric positive definite) tri-diagonal matrix stored as a leading diagonal and sub/super diagonal.

### Usage

    trichol(ld,sd)

### Arguments

`ld` | leading diagonal of matrix
`sd` | sub-super diagonal of matrix

### Details

Calls `dpttrf` from `LAPACK`. The point of this is that it has O(n) computational cost, rather than the O(n^3) required by dense matrix methods.

### Value

A list with elements `ld` and `sd`. `ld` is the leading diagonal and `sd` is the super diagonal of bidiagonal matrix B where B'B=T and T is the original tridiagonal matrix.

### Author(s)

Simon N. Wood simon.wood@r-project.org

### References

Anderson, E., Bai, Z., Bischof, C., Blackford, S., Dongarra, J., Du Croz, J., Greenbaum, A., Hammarling, S., McKenney, A. and Sorensen, D., 1999. LAPACK Users' guide (Vol. 9). Siam.

### See Also

`bandchol`

### Examples

    require(mgcv)
    ## simulate some diagonals...
    set.seed(19); k <- 7
    ld <- runif(k)+1
    sd <- runif(k-1) -.5

    ## get diagonals of chol factor...
    trichol(ld,sd)

    ## compare to dense matrix result...
    A <- diag(ld);for (i in 1:(k-1)) A[i,i+1] <- A[i+1,i] <- sd[i]
    R <- chol(A)
    diag(R);diag(R[,-1])

[Package mgcv version 1.8-17 Index]