Gaussian Elimination
Solving linear systems is really important, how do we do it quickly?
The most trivial way to solve is with our explicit formula for (calculating determinants recursively), but this is uselessly slow ( if done completely naively)
While the inverse method is nice in theory, Gaussian elimination (the manual method, named after the same dude but unrelated to the distribution), is faster
Let’s be precise about the properties of this algorithm
- It works for systems of equations with non-singular coefficient matrices
- We can achieve good accuracy by picking “stronger” pivots (larger)
This algorithm runs in and gives an exact solution (barring floating-point errors)
Iterative Methods
Iterative methods are promising because they allow one to improve approximations bit by bit, which allows for flexible trade-offs in time and accuracy
Assume we pick such that is invertible and one can write
We can write where and
This looks like a fixed-point problem, so we attempt the scheme and hope that the error decreases
- This scheme relies only on matrix-vector multiplication and addition
- If is sparse then we can do this faster
- This is only helpful if is cheap to invert
We can quickly derive so we need to show as
To do this, we need to first define a matrix norm
We note that all norms are equivalent,
Theorem: Let , be norms for vectors in , then there exists such that for all
Corollary: as
Example:
We can prove each property relatively easily, for example,
We can further derive some useful identities for this norm,
where is the largest eigenvalue of
Now let’s build up what we need
Does ? If it is diagonalizable, we can write where is diagonalizable and contains the eigenvalues , so
I.e. at least linear convergence if
To obtain our convergence theorem’s error bound, we use a few important properties,
- for any norm
- is invertible
- If , then
Deriving it from here is pretty simple, and I’m going to omit it
Theorem: Let where is non-singular and define by . Then where if and only if . Furthermore, if then .
As we’ve said,
where
This is great because it gives us an error bound, however we still require an easy to compute for the scheme to be practical
One way begins by splitting (lower, diagonal, upper) and defines ,
This is the most trivial solution, since diagonal matrices are very easy to invert, and is called the Jacobi scheme
However, we note that the order on the rows of effects the convergence of our method under the Jacobi scheme! This is bad
We can find that convergence of under the Jacobi scheme rests on strict diagonal dominance of , where the magnitude of each diagonal is greater than the sum of the magnitudes of the remaining values in its row
Theorem: Let be strictly diagonally dominant, then the Jacobi method for solving converges
An alternative to the Jacobi method is the Gauss-Seidel method, which splits into and
Lower triangular matrices are easy to invert and our same theorem applies