Skip to main content

Why conjugate gradient over Gaussian methods

Short answer

Gaussian elimination produces fill-in and costs roughly n^3/3 operations, while CG needs only matrix-vector products and stores just the nonzeros, so it suits large sparse systems. CG can stop early, corrects round-off using the original matrix, and parallelizes easily, but requires a symmetric positive definite matrix.

Why is the conjugate gradient method used in computation over Gaussian methods?

Gaussian elimination is a direct method that reduces [A][A] to triangular form, while the conjugate gradient (CG) method is an iterative method that minimises 12xTAx−bTx\tfrac12x^TAx-b^Tx along A-conjugate directions. CG is preferred for large problems for these reasons:

  1. Memory: CG needs only matrix-vector products AdAd, so only the non-zero terms of the sparse matrix are stored. Gaussian elimination produces fill-in, which destroys sparsity inside the band.
  2. Operation count: each CG iteration costs about n×(non-zeros per row)n\times(\text{non-zeros per row}) operations, and a good solution often comes in far fewer than nn iterations, whereas elimination costs about n3/3n^3/3 (or nb2nb^2 for a banded matrix).
  3. Accuracy: round-off errors in elimination accumulate over nn steps; in CG each iteration uses the original matrix and corrects the error.
  4. Flexibility: the solution can be stopped when the residual is small enough, and a good starting guess can be used; elimination cannot be stopped early.
  5. Parallelism: matrix-vector products are easy to parallelise, and the matrix need not even be assembled (element-by-element products).
  6. In exact arithmetic CG finishes in at most nn steps and with preconditioning converges faster.

Limitation: CG is applicable only to symmetric positive definite matrices, and for several load vectors a factorised direct solver may be cheaper.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Computational Techniques in Civil Engineering chapter 2 questions →