Factorizations
Defining Factorizations
The matrix classes described in Chapter 3, “Vectors and Matrices,” are the basic classes used to represent linear operators in the Linear Algebra Module. For some operations, however, representing a system of equations via its coefficient matrix is not suitable. The most important of these operations is computation using the reverse mapping, more commonly known as solving the system of equations. For this operation, it is more convenient to represent the system of equations as a factorization. The type of factorization constructed, which is LU for a general system or Cholesky for a positive definite system, is part of the implementation. You don't have to know about it.
The factorization classes are used to calculate determinants, inverses, and the condition number of a matrix, and to solve systems of equations. These operations are done in two steps:
The factorization of a matrix is calculated.
This factorization is used to calculate determinates, inverses, or solutions of systems of equations.
In the Linear Algebra Module, the factorization of the matrix is calculated by the class constructor. The resulting object can then be used to calculate determinants or inverses, or to solve systems of equations. For simple operations, you may not want to know about factorizations at all, and you can use automatic type conversion. However, for situations where the same matrix is used for more than one operation, or for more complex situations where the condition number is required, for example, it is much more efficient to calculate the factorization once and use it multiple times.
There are factorization classes for general square, symmetric, positive-definite symmetric, banded, and positive-definite banded matrices in float, double, and double complex precisions. Every factorization class has a virtually identical interface. Once you learn to use one type, you can use them all.