backsolve                package:base                R Documentation

Solve an Upper or Lower Triangular System

Description:

     Solves a system of linear equations where the coefficient matrix
     is upper or lower triangular.

Usage:

        backsolve(r, x, k=ncol(r), upper.tri=TRUE, transpose=FALSE)
     forwardsolve(l, x, k=ncol(l), upper.tri=FALSE, transpose=FALSE)

Arguments:

     r,l: an upper (or lower) triangular matrix giving the coefficients
          for the system to be solved.  Values below (above) the
          diagonal are ignored.

       x: a matrix whose columns give the right-hand sides for the
          equations.

       k: The number of columns of 'r' and rows of 'x' to use.

upper.tri: logical; if 'TRUE' (default), the _upper_ _tri_angular part
          of 'r' is used.  Otherwise, the lower one.

transpose: logical; if 'TRUE', solve r' * y = x for y, i.e., 't(r) %*%
          y == x'.

Value:

     The solution of the triangular system.  The result will be a
     vector if 'x' is a vector and a matrix if 'x' is a matrix.

References:

     Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) _The New S
     Language_. Wadsworth & Brooks/Cole.

     Dongarra, J. J., Bunch,J. R.,  Moler, C. B. and  Stewart, G. W.
     (1978) _LINPACK Users Guide._  Philadelphia: SIAM Publications.

See Also:

     'chol', 'qr', 'solve'.

Examples:

     ## upper triangular matrix 'r':
     r <- rbind(c(1,2,3),
                c(0,1,1),
                c(0,0,2))
     ( y <- backsolve(r, x <- c(8,4,2)) ) # -1 3 1
     r %*% y # == x = (8,4,2)
     backsolve(r, x, transpose = TRUE) # 8 -12 -5

