Description Usage Arguments Value References Examples
Jacobi method is an iterative algorithm for solving a system of linear equations,
with a decomposition A = D+R where D is a diagonal matrix.
For a square matrix A, it is required to be diagonally dominant. 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.
1 2 | lsolve.jacobi(A, B, xinit = NA, reltol = 1e-05, maxiter = 1000,
weight = 2/3, adjsym = TRUE, verbose = TRUE)
|
A |
an (m\times n) dense or sparse matrix. See also |
B |
a vector of length m or an (m\times k) matrix (dense or sparse) for solving k systems simultaneously. |
xinit |
a length-n vector for initial starting point. |
reltol |
tolerance level for stopping iterations. |
maxiter |
maximum number of iterations allowed. |
weight |
a real number in (0,1]; 1 for native Jacobi. |
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_1997SolveLS
1 2 3 4 5 6 7 8 9 10 11 12 | ## Overdetermined System
A = matrix(rnorm(10*5),nrow=10)
x = rnorm(5)
b = A%*%x
out1 = lsolve.jacobi(A,b,weight=1,verbose=FALSE) # unweighted
out2 = lsolve.jacobi(A,b,verbose=FALSE) # weight of 0.66
out3 = lsolve.jacobi(A,b,weight=0.5,verbose=FALSE) # weight of 0.50
print("* lsolve.jacobi : overdetermined case example")
print(paste("* error for unweighted Jacobi case : ",norm(out1$x-x)))
print(paste("* error for 0.66 weighted Jacobi case : ",norm(out2$x-x)))
print(paste("* error for 0.50 weighted Jacobi case : ",norm(out3$x-x)))
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.