# cg_rc

cg_rc, a MATLAB code which implements the conjugate gradient (CG) method for solving a positive definite sparse linear system A*x=b, using reverse communication (RC).

### Languages:

cg_rc is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version and a Python version.

### Related Data and Programs:

backtrack_binary_rc, a MATLAB code which carries out a backtrack search for a set of binary decisions, using reverse communication (RC).

bisection_rc, a MATLAB code which seeks a solution to the equation F(X)=0 using bisection within a user-supplied change of sign interval [A,B]. The procedure is written using reverse communication (RC).

cg, a MATLAB code which implements a simple version of the conjugate gradient (CG) method for solving a system of linear equations of the form A*x=b, suitable for situations in which the matrix A is positive definite (only real, positive eigenvalues) and symmetric.

gauss_seidel, a MATLAB code which implements the Gauss-Seidel iteration for linear systems.

jacobi, a MATLAB code which implements the Jacobi iteration for solving symmetric positive definite systems of linear equations.

local_min_rc, a MATLAB code which finds a local minimum of a scalar function of a scalar variable, without the use of derivative information, using reverse communication (RC), by Richard Brent.

mgmres, a MATLAB code which applies the restarted GMRES algorithm to solve a sparse linear system.

newton_rc, a MATLAB code which solves a system of nonlinear equations by Newton's method, using reverse communication (RC).

sor, a MATLAB code which implements a simple version of the successive over-relaxation (SOR) method for the iteration solution of a linear system of equations.

root_rc, a MATLAB code which seeks a solution of a scalar nonlinear equation f(x) = 0, or a system of nonlinear equations, using reverse communication (RC), by Gaston Gonnet.

roots_rc, a MATLAB code which seeks a solution of a system of nonlinear equations f(x) = 0, using reverse communication (RC), by Gaston Gonnet.

sort_rc, a MATLAB code which can sort a list of any kind of objects, using reverse communication (RC).

zero_rc, a MATLAB code which seeks a solution of a scalar nonlinear equation f(x) = 0, using reverse communication (RC), by Richard Brent.

### Reference:

1. Richard Barrett, Michael Berry, Tony Chan, James Demmel, June Donato, Jack Dongarra, Victor Eijkhout, Roidan Pozo, Charles Romine, Henk van der Vorst,
Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods,
SIAM, 1994,
ISBN: 0898714710,
LC: QA297.8.T45.
2. Jonathan Shewchuk,
An introduction to the conjugate gradient method without the agonizing pain, Edition 1.25, August 1994.

### Source Code:

• cg_rc.m is a reverse communication conjugate gradient routine.
• wathen.m returns the WATHEN matrix.
• wathen_order.m returns the order of the WATHEN matrix.

Last revised on 12 December 2018.