next up previous
Next: Iterative Methods Up: Systems of Equations and Previous: Systems of Equations and

Exact Methods

Most library routines, for example those in the NAG (Numerical Algorithms Group, n.d.) or LaPack (Lapack Numerical Library, n.d.) libraries are based on some variation of Gaussian elimination. The standard procedure is to call a first function which performs an $\bss{L}\bss{U}$ decomposition of the matrix $\bss{A}$,
\begin{displaymath}
\bss{A} = \bss{L}\bss{U}
\end{displaymath} (3.10)

where $\bss{L}$ and $\bss{U}$ are lower and upper triangular matrices respectively, followed by a function which performs the operations
$\displaystyle \bss{Y}$ $\textstyle =$ $\displaystyle \bss{L}^{-1}\bss{B}$ (3.11)
$\displaystyle \bss{X}$ $\textstyle =$ $\displaystyle \bss{U}^{-1}\bss{Y}$ (3.12)

on each column of $\bss{B}$. The procedure is sometimes described as Gaussian Elimination. A common variation on this procedure is partial pivoting. This is a trick to avoid numerical instability in the Gaussian Elimination (or $\bss{L}\bss{U}$ decomposition) by sorting the rows of $\bss{A}$ to avoid dividing by small numbers. There are several aspects of this procedure which should be noted: The time taken to solve $N$ equations in $N$ unknowns is generally proportional to $N^3$ for the Gaussian-Elimination ( $\bss{L}\bss{U}$-decomposition) step. The Back-Substitution step goes as $N^2$ for each column of $\bss{B}$. As before this may be modified by parallelism.
next up previous
Next: Iterative Methods Up: Systems of Equations and Previous: Systems of Equations and