lsolve.ssor | R Documentation |
Symmetric Successive Over-Relaxation(SSOR) method is a variant of Gauss-Seidel method for solving a system of linear equations,
with a decomposition A = D+L+U
where D
is a diagonal matrix and
L
and U are strictly lower/upper triangular matrix respectively.
For a square matrix A
, it is required to be diagonally dominant or symmetric and positive definite like GS method.
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.
lsolve.ssor(
A,
B,
xinit = NA,
reltol = 1e-05,
maxiter = 1000,
w = 1,
adjsym = TRUE,
verbose = TRUE
)
A |
an |
B |
a vector of length |
xinit |
a length- |
reltol |
tolerance level for stopping iterations. |
maxiter |
maximum number of iterations allowed. |
w |
a weight value in |
adjsym |
a logical; |
verbose |
a logical; |
a named list containing
solution; a vector of length n
or a matrix of size (n\times k)
.
the number of iterations required.
a vector of errors for stopping criterion.
demmel_applied_1997Rlinsolve
## Overdetermined System
set.seed(100)
A = matrix(rnorm(10*5),nrow=10)
x = rnorm(5)
b = A%*%x
out1 = lsolve.ssor(A,b)
out2 = lsolve.ssor(A,b,w=0.5)
out3 = lsolve.ssor(A,b,w=1.5)
matout = cbind(matrix(x),out1$x, out2$x, out3$x);
colnames(matout) = c("true x","SSOR w=1", "SSOR w=0.5", "SSOR w=1.5")
print(matout)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.