From 54346dc77f61fcc347cadfbfe85b3a2abd0d50b5 Mon Sep 17 00:00:00 2001 From: Persson-dev Date: Thu, 29 Feb 2024 15:10:12 +0100 Subject: [PATCH] add some doc --- src/Matrix.h | 4 ++++ src/Solver.h | 26 ++++++++++++++++++++++++++ src/Vect.h | 38 ++++++++++++++++++++++++++++++++++++-- 3 files changed, 66 insertions(+), 2 deletions(-) diff --git a/src/Matrix.h b/src/Matrix.h index a0ee3fb..3d578c3 100644 --- a/src/Matrix.h +++ b/src/Matrix.h @@ -5,6 +5,10 @@ #include #include +/** + * \class Matrix + * \brief Représente une matrice d'éléments +*/ class Matrix { public: typedef long double Element; diff --git a/src/Solver.h b/src/Solver.h index 2d6bbf5..5f6f5a7 100644 --- a/src/Solver.h +++ b/src/Solver.h @@ -2,19 +2,45 @@ #include "Vect.h" +/** + * \class Solver + * \brief Permet d'obtenir différentes propriétés d'une matrice comme l'image ou le noyau + */ class Solver { private: Matrix m_Matrix; public: + /** + * \brief Initialise le resolveur + * \param mat La matrice d'entrée + */ Solver(const Matrix& mat); ~Solver() {} + /** + * \brief Calcule l'image de la matrice d'entrée + * \return L'espace vectoriel correspondant + */ Vect Image() const; + + /** + * \brief Calcule le noyau de la matrice d'entrée + * \return L'espace vectoriel correspondant + */ Vect Kernel() const; + /** + * \brief Résout le système triangulaire de la forme AX=B. + * La matrice d'entrée est considéré comme étant la matrice augmenté [A|B] + * \return L'espace affine associé + */ VectAffine TriangularSystem() const; + /** + * \brief Calcule le rang de la matrice + * \note Ceci équivaut à \code Image().GetCardinal() \endcode + */ std::size_t Rank() const; }; \ No newline at end of file diff --git a/src/Vect.h b/src/Vect.h index d540a44..a771d05 100644 --- a/src/Vect.h +++ b/src/Vect.h @@ -2,7 +2,10 @@ #include "Matrix.h" -// espace vectoriel +/** + * \class Vect + * \brief Représente une base d'un espace vectoriel de dimension finie + */ class Vect { private: Matrix m_Data; @@ -10,16 +13,32 @@ class Vect { public: /** * \brief Construit une base d'un espace vectoriel à partir des colonnes d'une matrice. - * Ne prend pas en compte les colonnes de 0 + * Les colonnes de 0 sont ignorées * \param mat Une matrice échelonnée. */ Vect(const Matrix& mat); + /** + * \brief Permet d'obtenir le ieme vecteur de la base + * \param index l'index du vecteur souhaité + * \return Une matrice colonne + */ Matrix GetVector(std::size_t index) const; + /** + * \brief Retourne le nombre de coordonnées des vecteurs de la base (leur nombre de colonne) + */ std::size_t GetDimension() const; + + /** + * \brief Retourne le nombre de vecteur de la base + */ std::size_t GetCardinal() const; + /** + * \brief Exprime l'espace vectoriel comme les solutions d'un système linéaire des coordonnées des vecteurs + * \return Une matrice représentant le système linéaire + */ Matrix GetLinearSystem() const; /** @@ -35,18 +54,33 @@ class Vect { void Simplify(); }; +/** + * \class VectAffine + * \brief Représente un espace affine + */ class VectAffine { private: Vect m_Base; Matrix m_Origin; public: + /** + * \brief Construit un espace affine à partir d'un espace vectoriel et d'une origine + * \param base La base de l'espace vectoriel + * \param origin Le vecteur d'origine (matrice colonne) + */ VectAffine(const Vect& base, const Matrix& origin); + /** + * \brief Retourne l'espace vectoriel correspondant + */ const Vect& GetBase() const { return m_Base; } + /** + * \brief Retourne l'origine de l'espace affine + */ const Matrix& GetOrigin() const { return m_Origin; }