0% found this document useful (0 votes)
325 views

LUfbsub - Bas: Forward and Back Substitution in Visual Basic

LUfbsub.bas: Forward and back substitution in visual basic, to solve a matrix-vector system. following the LU factorisation of a matrix. The method is demonstrated on an Excel spreadsheet.

Uploaded by

rodwellhead
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
325 views

LUfbsub - Bas: Forward and Back Substitution in Visual Basic

LUfbsub.bas: Forward and back substitution in visual basic, to solve a matrix-vector system. following the LU factorisation of a matrix. The method is demonstrated on an Excel spreadsheet.

Uploaded by

rodwellhead
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

www.numerical-methods.

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

You might also like