jacobi {fastmatrix} | R Documentation |
Solve linear systems using the Jacobi method
Description
Jacobi method is an iterative algorithm for solving a system of linear equations.
Usage
jacobi(a, b, start, maxiter = 200, tol = 1e-7)
Arguments
a |
a square numeric matrix containing the coefficients of the linear system. |
b |
a vector of right-hand sides of the linear system. |
start |
a vector for initial starting point. |
maxiter |
the maximum number of iterations. Defaults to |
tol |
tolerance level for stopping iterations. |
Details
Let \bold{D}
, \bold{L}
, and \bold{U}
denote the diagonal, lower
triangular and upper triangular parts of a matrix \bold{A}
. Jacobi's method
solve the equation \bold{Ax} = \bold{b}
, iteratively by rewriting \bold{Dx}
+ (\bold{L} + \bold{U})\bold{x} = \bold{b}
. Assuming that \bold{D}
is nonsingular
leads to the iteration formula
\bold{x}^{(k+1)} = -\bold{D}^{-1}(\bold{L} + \bold{U})\bold{x}^{(k)} + \bold{D}^{-1}\bold{b}
Value
a vector with the approximate solution, the iterations performed are returned as the attribute 'iterations'.
References
Golub, G.H., Van Loan, C.F. (1996). Matrix Computations, 3rd Edition. John Hopkins University Press.
See Also
Examples
a <- matrix(c(5,-3,2,-2,9,-1,3,1,-7), ncol = 3)
b <- c(-1,2,3)
start <- c(1,1,1)
z <- jacobi(a, b, start)
z # converged in 15 iterations