lsolve.gs {Rlinsolve} | R Documentation |
Gauss-Seidel method
Description
Gauss-Seidel(GS) method is an iterative algorithm for solving a system of linear equations,
with a decomposition where
is a diagonal matrix and
and U are strictly lower/upper triangular matrix respectively.
For a square matrix
, it is required to be diagonally dominant or symmetric and positive definite.
For an overdetermined system where
nrow(A)>ncol(A)
,
it is automatically transformed to the normal equation. Underdetermined system -
nrow(A)<ncol(A)
- is not supported.
Usage
lsolve.gs(
A,
B,
xinit = NA,
reltol = 1e-05,
maxiter = 1000,
adjsym = TRUE,
verbose = TRUE
)
Arguments
A |
an |
B |
a vector of length |
xinit |
a length- |
reltol |
tolerance level for stopping iterations. |
maxiter |
maximum number of iterations allowed. |
adjsym |
a logical; |
verbose |
a logical; |
Value
a named list containing
- x
solution; a vector of length
or a matrix of size
.
- iter
the number of iterations required.
- errors
a vector of errors for stopping criterion.
References
Demmel JW (1997). Applied Numerical Linear Algebra. Society for Industrial and Applied Mathematics. ISBN 978-0-89871-389-3 978-1-61197-144-6.
Examples
## Overdetermined System
set.seed(100)
A = matrix(rnorm(10*5),nrow=10)
x = rnorm(5)
b = A%*%x
out = lsolve.gs(A,b)
matout = cbind(matrix(x),out$x); colnames(matout) = c("true x","est from GS")
print(matout)