Iterative algorithm
What Is an Iterative Algorithm?
An iterative algorithm is a computational procedure that generates a sequence of approximate solutions to a problem by repeatedly applying a fixed set of operations, where each new approximation is computed from one or more previous approximations. Rather than solving a problem in a single closed-form step, an iterative algorithm starts from an initial estimate and refines it step by step until a specified stopping criterion is satisfied, such as the change between successive estimates falling below a tolerance or the residual error becoming sufficiently small. The approach is foundational in numerical analysis, optimization, and machine learning, where exact analytical solutions are either unavailable or too expensive to compute directly.
The principal alternative to iteration is a direct method, which solves a problem in a predetermined finite number of operations. For large-scale problems, such as systems of equations arising from finite element discretizations, direct methods become prohibitively expensive in memory and computation time, while well-designed iterative algorithms can exploit sparsity and problem structure to find accurate solutions far more efficiently.
Convergence and Stopping Criteria
A central theoretical concern for any iterative algorithm is convergence: whether the generated sequence of approximations approaches the true solution and, if so, at what rate. The rate of convergence is typically characterized as linear, superlinear, or quadratic. A linearly convergent method reduces the error by a constant factor at each step; a quadratically convergent method, such as Newton's method for root-finding, approximately squares the error at each step, enabling very rapid convergence near the solution.
Convergence is not guaranteed for all iterative algorithms and all problem instances. The choice of initial estimate, the conditioning of the problem, and the specific update formula all affect whether a sequence converges. Practical algorithms incorporate stopping criteria based on the norm of the residual, the relative change between successive iterates, or a maximum iteration count as a safeguard against non-convergence. The SIAM Journal on Scientific Computing work on iterative refinement illustrates how careful convergence analysis enables accurate solutions to ill-conditioned problems that naive iteration would fail to resolve.
Common Iterative Methods
Iterative methods for linear systems include classical stationary methods such as Jacobi, Gauss-Seidel, and successive over-relaxation (SOR), as well as Krylov subspace methods such as the Conjugate Gradient (CG) method and GMRES. Krylov methods build a sequence of search directions from successive matrix-vector products and are particularly effective for large sparse systems arising in computational fluid dynamics, structural analysis, and electromagnetics simulations. Preconditioning, which applies an approximation to the inverse of the coefficient matrix before iteration, can dramatically accelerate convergence by reducing the effective condition number of the problem.
For nonlinear equations and optimization problems, Newton-type methods use local linearization at each iterate to compute the next step, achieving quadratic convergence when the initial estimate is sufficiently close to the solution. Quasi-Newton methods such as BFGS approximate the Hessian matrix from gradient information, avoiding the cost of forming and factoring the exact second-derivative matrix while retaining superlinear convergence. The ScienceDirect overview of iterative algorithm applications surveys the range of problem classes and method families that practitioners encounter.
Parallel and Distributed Iteration
Many iterative algorithms expose natural parallelism. Matrix-vector products, the inner loop of most Krylov methods, decompose readily across multiple processors with a partitioned data layout. Asynchronous iterative methods allow processors to update their local variables without waiting for a global synchronization at each step, trading convergence regularity for reduced communication overhead in distributed-memory systems. These properties have made iterative algorithms a core tool in high-performance computing, where direct solvers cannot scale to the problem sizes encountered in climate modeling, large-scale optimization, and deep learning training.
Applications
Iterative algorithms have applications in a wide range of disciplines, including:
- Structural and fluid-dynamics simulations, where Krylov solvers handle the large sparse linear systems produced by finite element and finite difference discretizations
- Machine learning and optimization, where gradient descent and its variants iteratively minimize loss functions over high-dimensional parameter spaces
- Signal and image processing, where iterative reconstruction algorithms recover images from compressed or noisy measurements
- Computational electromagnetics, where iterative solvers compute field distributions in antenna and waveguide designs
- Network analysis, where iterative power-method computations compute rankings and centrality measures in large graphs