diff --git a/README.md b/README.md index 0876906..52d9667 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Marsvin library : Matrix, vectors and linear algebra +Documentation : [Link](https://juliusdiestra.github.io/marsvin-matrix-container-cpp/) + Repository that contains the **MARSVIN** library that contains usefull containers and operations for linear algebra. Contains : @@ -8,9 +10,11 @@ Contains : * Vector container. * Forward substitution. * Backward substitution. -* Gauss elimination. -* Matrix inverse calculation. -* Solution of A\*x = b. +* Triangular matrix inverse. +* Solution of triangular systems. L\*x = b and U\*x = b +* LU Decomposition : Partial Pivoting. +* Matrix inverse calculation. -> TBD +* Solution of A\*x = b. -> TBD ## How to build library diff --git a/documentation/Doxyfile b/documentation/Doxyfile index e4ac1bb..9c819f2 100644 --- a/documentation/Doxyfile +++ b/documentation/Doxyfile @@ -1514,7 +1514,7 @@ DISABLE_INDEX = NO # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. -GENERATE_TREEVIEW = NO +GENERATE_TREEVIEW = YES # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. diff --git a/documentation/main_page.md b/documentation/main_page.md index 96ff67f..cf65c69 100644 --- a/documentation/main_page.md +++ b/documentation/main_page.md @@ -23,7 +23,7 @@ and the **Matrix** class includes extra methods useful for matrix linear algebra Header file : - include "base_matrix.hpp" + #include "marsvin/containers/base_matrix.hpp" A **BaseMatrix** object can be created as, @@ -60,7 +60,7 @@ Basic operations are provided using overload operators : Header file : - include "matrix.hpp" + #include "marsvin/containers/matrix.hpp" A **Matrix** object can be created as, @@ -74,7 +74,7 @@ A vector is considered as Nx1 matrix in this library. Header file : - include "vector.hpp" + #include "marsvin/containers/vector.hpp" A **Vector** object can be created as, @@ -88,9 +88,11 @@ A **Vector** object can be created as, #### Forward Substitution -Solution of a lower triangular system +Header file : -For the following equation, + #include "marsvin/triangular_systems/forward_substitution.hpp" + +The algorithm provides a solution for the following equation, \f$ Lx = b \f$ @@ -150,6 +152,10 @@ For example, #### Inverse +Header file : + + #include "marsvin/triangular_system/lower_inverse.hpp" + ### Upper Triangular Matrix #### Backward Substitution @@ -215,6 +221,10 @@ For example, #### Inverse +Header file : + + #include "marsvin/triangular_system/upper_inverse.hpp" + Giving the following equation, \f[ @@ -323,11 +333,30 @@ Then, the Following algorithm can be formulated, -## Gauss Elimination -TBD +## LU Decomposition + +Given a \f$ n \times n \f$ matrix defined as \f$A\f$. +A general expression for factorization can be written as, + +\f[ +PAQ = LU +\f] + +where, + +\f$A\f$ : Matrix to be factorized. Dimension : \f$ n \times n \f$. + +\f$P\f$ : Permutation matrix to re-order rows of A. Dimension : \f$ n \times n \f$. + +\f$Q\f$ : Permutation matrix to re-order columns of A. Dimension : \f$ n \times n \f$. + +\f$L\f$ : Lower triangular matrix. Dimension : \f$ n \times n \f$. + +\f$U\f$ : Upper triangular matrix. Dimension : \f$ n \times n \f$. ### Partial Pivoting -TBD +TBD : Addingle pseudo code for algorithm. +