Every branch of science and engineering eventually reduces to solving a linear system : a set of equations linking unknowns through a matrix . Climate models, circuit simulators, structural analyses, and machine-learning optimizers all spend most of their time here.
For small systems, you simply invert directly. But the matrices that appear in practice can have millions of rows. Direct methods are too slow and eat too much memory. Instead, you use an iterative solver: start with a guess and keep improving it until it is close enough to the true solution.
The problem is that some matrices make iterative solvers crawl. The culprit is the condition number : a measure of how stretched the solution space is. A large condition number means the solver must take many tiny steps in some directions and huge ones in others â and convergence can take thousands of iterations or more.
Preconditioning is the answer. You find a matrix that is a cheap approximation of , and instead of solving directly you solve the equivalent system . If , then , which has condition number 1 â the easiest system imaginable. Even a rough approximation can shrink thousands of iterations down to tens.
Comments
Loading comments...