Learn R Programming

fastmatrix (version 0.5-7721)

jacobi: 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)

Value

a vector with the approximate solution, the iterations performed are returned as the attribute 'iterations'.

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 200

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}$$

References

Golub, G.H., Van Loan, C.F. (1996). Matrix Computations, 3rd Edition. John Hopkins University Press.

See Also

seidel

Examples

Run this code
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

Run the code above in your browser using DataLab