LUfbsub - Bas: Forward and Back Substitution in Visual Basic
LUfbsub - Bas: Forward and Back Substitution in Visual Basic
com
Numerical Methods Library in Excel VBA
Module
LUfbsub.bas
Title
Forward and back substitution for real systems.
Description
LU factorisation of a square matrix is normally produces the
lower-triangular matrix L, the upper triangular matrix (with diagonal
elements set to 1) U and the permutation matrix P. such that
And the permutation matrix is stored as an integer n-vector, which
simply records the positions of the 1s in each column (or row) of the
permutation matrix. An example of the LU factorisation algorithm is
LUfac.bas and this subroutine can be used directly on its results.
One of the most important reasons for LU factorisation is for the solution
of linear systems of equations or matrix-vector systems of the form
A x = b .
The factorisation allows us to write LU x = P b, which can be solved
straightforwardly using forward and back substitution.
The forward and back substitution method is implemented by
LUfbsub.bas. The forward and back substitution is an O(n
2
) and the LU
factorisation is O(n
2
); the forward and back substitution is
computationally less intense than the LU factorisation and hence the
strategy is that the LU factorisation, once computed, may be re-used for
various vectors b..
Interface
Sub LUfbsub(a, n, perm, b)
real a: on input the nxn matrix A, on output L and U
integer n: the dimension of the matrix/vector
integer perm: an n-vector, the column index of the permutation matrix P
real b: the vector b
Note the input matrix a is such that the diagonal and upper-triangular
elements is the U matrix and the lower-triangular elements together
with 1s on the diagonal is the matrix U. On exit the b is overwritten by
the solution x.
Web source of
code.
www.numerical-methods.com/ExcelVBA/LU.xlsm
(key Developer then Visual Basic and then LUbfsub_module)
www.numerical-methods.com
Web source of
this guide
www.numerical-methods.com/Excel_VBA/LUfac_bas.htm
Web source of
the algorithm
www.numerical-methods.com/lineq/LU Factorisation.htm
Dependent
routines
NONE
Test problems
The Excel file contains spreadsheet test programs that demonstrate the
forward and back substitution method of either a set of test matrix-vector
systems of various dimensions or a chosen matrix/vector.
www.numerical-methods.com/ExcelVBA/LU.xlsm
The test problems are similar to those used in Matlab/Freemat/Octave
Scilab
www.numerical-methods.com/mfiles/LUfbsub_tests.htm
and in FORTRAN
www.numerical-methods.com/fortran/CLUTESTS_FOR.htm
Licence
This is open source; the software may be used and applied within other
systems or re-published as long as its provenance is appropriately
acknowledged.
See the GNU Licence for more information or contact
[email protected]
Similar codes
that may be of
interest
LUFBSUB, www.numerical-methods.com/fortran/LUFBSUB_FOR.htm ,
LUfbsub.bas, www.numerical-metods.com/Excel_VBA/LU.xlsm
For the method in visual basic / VBA (Excel), but only for real systems.
Bibilography
Linear Systems and 2x2 Matrices
www.numerical-methods.com/lineq/LU Factorisation.htm
Tutorials on Fortran77
Numerical Methods