<!--
{
  "documentType" : "article",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/sparse-iterative-methods",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Sparse Iterative Methods"
}
-->

# Sparse Iterative Methods

Select a suitable iterative method to solve a system.

## Discussion

Sparse Iterative methods solve *Ax = b* through an iterative process that only requires multiplication by *A* or *A__ᵀ*. However, if *A* is numerically difficult, the iterative process may fail to converge to a solution. Even for problems where the process converges, it may do so slowly. You can fix both of these issues through the application of a problem-specific preconditioner that approximates the inverse of *A*.

## Topics

### Sparse Iterative Methods for Symmetric Positive-Definite Coefficient Matrices

[`SparseConjugateGradient`](/documentation/Accelerate/SparseConjugateGradient())

Returns a conjugate gradient (CG) method.

[`SparseConjugateGradient`](/documentation/Accelerate/SparseConjugateGradient(_:))

Returns a conjugate gradient (CG) method with specified options.

[`SparseCGOptions`](/documentation/Accelerate/SparseCGOptions)

Options for creating a conjugate gradient (CG) method.

### Sparse Iterative Methods for Symmetric Indefinite and Unsymmetric Coefficient Matrices

[`SparseGMRES`](/documentation/Accelerate/SparseGMRES())

Returns a generalized minimal residual (GMRES) method.

[`SparseGMRES`](/documentation/Accelerate/SparseGMRES(_:))

Returns a generalized minimal residual (GMRES) method with specified options.

[`SparseGMRESOptions`](/documentation/Accelerate/SparseGMRESOptions)

Options for creating a generalized minimal residual (GMRES) method.

### Sparse Iterative Methods for Overdetermined and Underdetermined Systems

[`SparseLSMR`](/documentation/Accelerate/SparseLSMR())

Returns a default least squares minimum residual (LSMR) method.

[`SparseLSMR`](/documentation/Accelerate/SparseLSMR(_:))

Returns a least squares minimum residual method with specified options.

[`SparseLSMROptions`](/documentation/Accelerate/SparseLSMROptions)

Options for creating a least squares minimum residual method.

### Iterative Method Structure

[`SparseIterativeMethod`](/documentation/Accelerate/SparseIterativeMethod)

The base type for all iterative methods.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)