Conjugate gradient method

From Wikipedia, the free encyclopedia

In mathematics, the conjugate gradient method is an algorithm for the numerical solution of particular systems of linear equations, namely those whose matrix is symmetric and positive definite. The conjugate gradient method is an iterative method, so it can be applied to sparse systems which are too large to be handled by direct methods such as the Cholesky decomposition. Such systems arise regularly when numerically solving partial differential equations.

The conjugate gradient method can also be used to solve unconstrained optimization problems.

The biconjugate gradient method provides a generalization to non-symmetric matrices. Various nonlinear conjugate gradient methods seek minima to nonlinear equations.


Contents

Suppose we want to solve the following system of linear equations

Ax = b,\,

where the n-by-n matrix A is symmetric (i.e., AT = A), positive definite (i.e., xTAx > 0 for all non-zero vectors x in Rn), and real.

We denote the unique solution of this system by x*.

We say that two non-zero vectors u and v are conjugate (with respect to A) if

u^\top A v = 0.

Since A is symmetric and positive definite, the left-hand side defines an inner product

\langle u,v \rangle_A := \langle A u, v\rangle = \langle u, Av \rangle = u^\top A v.

So, two vectors are conjugate if they are orthogonal with respect to this inner product. Being conjugate is a symmetric relation: if u is conjugate to v, then v is conjugate to u. (Note: This notion of conjugate is not related to the notion of complex conjugate.)

Suppose that {pk} is a sequence of n mutually conjugate directions. Then the pk form a basis of Rn, so we can expand the solution x* of Ax = b in this basis:

x_* = \alpha_1 p_1 + \cdots + \alpha_n p_n.

The coefficients are given by

\alpha_k = \frac{p_k^\top b}{p_k^\top A p_k} = \frac{\langle p_k, b\rangle}{\,\,\,\langle p_k,  p_k\rangle_A} = \frac{\langle p_k, b\rangle}{\,\,\,\|p_k\|_A^2}.

This result is perhaps most transparent by considering the inner product defined above.

This gives the following method for solving the equation Ax = b. We first find a sequence of n conjugate directions and then we compute the coefficients αk.

If we choose the conjugate vectors pk carefully, then we may not need all of them to obtain a good approximation to the solution x*. So, we want to regard the conjugate gradient method as an iterative method. This also allows us to solve systems where n is so large that the direct method would take too much time.

We denote the initial guess for x* by x0. We can assume without loss of generality that x0 = 0 (otherwise, consider the system Az = bAx0 instead). Note that the solution x* is also the unique minimizer of the quadratic form

f(x) = \frac12 x^\top A x - b^\top x , \quad x\in\mathbf{R}^n.

This suggests taking the first basis vector p1 to be the gradient of f at x = x0, which equals -b. The other vectors in the basis will be conjugate to the gradient, hence the name conjugate gradient method.

Let rk be the residual at the kth step:

r_k = b - Ax_k.  \,

Note that rk is the negative gradient of f at x = xk, so the gradient descent method would be to move in the direction rk. Here, we insist that the directions pk are conjugate to each other, so we take the direction closest to the gradient rk under the conjugacy constraint. This gives the following expression:

p_{k+1} = r_k - \frac{p_k^\top A r_k}{p_k^\top A p_k} p_k.

After some simplifications, this results in the following algorithm for solving Ax = b where A is a real, symmetric, positive-definite matrix. The input vector x0 can be an approximate initial solution or 0.

r_0 := b - A x_0 \,
p_0 := r_0 \,
k := 0 \,
repeat
\alpha_k := \frac{r_k^\top r_k}{p_k^\top A p_k}  \,
x_{k+1} := x_k + \alpha_k p_k \,
r_{k+1} := r_k - \alpha_k A p_k \,
if rk+1 is "sufficiently small" then exit loop end if
\beta_k := \frac{r_{k+1}^\top r_{k+1}}{r_k^\top r_k}  \,
p_{k+1} := r_{k+1} + \beta_k p_k \,
k := k + 1 \,
end repeat
The result is x_{k+1} \,

The conjugate gradient method was originally proposed in

  • Magnus R. Hestenes and Eduard Stiefel (1952), Methods of conjugate gradients for solving linear systems, J. Research Nat. Bur. Standards 49, 409–436.

Descriptions of the method can be found in the following text books:

  • Kendell A. Atkinson (1988), An introduction to numerical analysis (2nd ed.), Section 8.9, John Wiley and Sons. ISBN 0-471-50023-2.
  • Mordecai Avriel (2003). Nonlinear Programming: Analysis and Methods. Dover Publishing. ISBN 0-486-43227-0.
  • Gene H. Golub and Charles F. Van Loan, Matrix computations (3rd ed.), Chapter 10, Johns Hopkins University Press. ISBN 0-8018-5414-8.

Advanced Search
Included Web Search Engines


Safe Search

close

Top Matching Results

Occasionally Search.com will highlight specialized results that are based on the context of your query. Examples of specialized results include specific links to news, images, or video.

Top Matching Results may highlight information from other Search.com pages, content from the CNET Network of sites, or third party content. The listings are based purely on relevance. Search.com does not receive payment for listings in this section but our partners that provide this data may get paid for listing these products.

Sponsored Links

This section contains paid listings which have been purchased by companies that want to have their sites appear for specific search terms and related content. These listings are administered, sorted and maintained by a third party and are not endorsed by Search.com.

Search Results

Search.com sends your search query to several search engines at one time and integrates the results into one list which has been sorted by relevance using Search.com's proprietary algorithm. You can customize the list of search engines included in your metasearch from the preferences.

The search engines that are used in your metasearch may allow companies to pay to have their Web sites included within the results. To view the Paid Inclusion policy for a specific search engine, please visit their Web site. Search.com does not accept payment or share revenue with any search engine partner for listings in this section.