add some doc
All checks were successful
Linux arm64 / Build (push) Successful in 40s

This commit is contained in:
2024-02-29 15:10:12 +01:00
parent d038ac5884
commit 54346dc77f
3 changed files with 66 additions and 2 deletions

View File

@@ -5,6 +5,10 @@
#include <string> #include <string>
#include <vector> #include <vector>
/**
* \class Matrix
* \brief Représente une matrice d'éléments
*/
class Matrix { class Matrix {
public: public:
typedef long double Element; typedef long double Element;

View File

@@ -2,19 +2,45 @@
#include "Vect.h" #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 { class Solver {
private: private:
Matrix m_Matrix; Matrix m_Matrix;
public: public:
/**
* \brief Initialise le resolveur
* \param mat La matrice d'entrée
*/
Solver(const Matrix& mat); Solver(const Matrix& mat);
~Solver() {} ~Solver() {}
/**
* \brief Calcule l'image de la matrice d'entrée
* \return L'espace vectoriel correspondant
*/
Vect Image() const; Vect Image() const;
/**
* \brief Calcule le noyau de la matrice d'entrée
* \return L'espace vectoriel correspondant
*/
Vect Kernel() const; 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; VectAffine TriangularSystem() const;
/**
* \brief Calcule le rang de la matrice
* \note Ceci équivaut à \code Image().GetCardinal() \endcode
*/
std::size_t Rank() const; std::size_t Rank() const;
}; };

View File

@@ -2,7 +2,10 @@
#include "Matrix.h" #include "Matrix.h"
// espace vectoriel /**
* \class Vect
* \brief Représente une base d'un espace vectoriel de dimension finie
*/
class Vect { class Vect {
private: private:
Matrix m_Data; Matrix m_Data;
@@ -10,16 +13,32 @@ class Vect {
public: public:
/** /**
* \brief Construit une base d'un espace vectoriel à partir des colonnes d'une matrice. * \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. * \param mat Une matrice échelonnée.
*/ */
Vect(const Matrix& mat); 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; 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; std::size_t GetDimension() const;
/**
* \brief Retourne le nombre de vecteur de la base
*/
std::size_t GetCardinal() const; 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; Matrix GetLinearSystem() const;
/** /**
@@ -35,18 +54,33 @@ class Vect {
void Simplify(); void Simplify();
}; };
/**
* \class VectAffine
* \brief Représente un espace affine
*/
class VectAffine { class VectAffine {
private: private:
Vect m_Base; Vect m_Base;
Matrix m_Origin; Matrix m_Origin;
public: 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); VectAffine(const Vect& base, const Matrix& origin);
/**
* \brief Retourne l'espace vectoriel correspondant
*/
const Vect& GetBase() const { const Vect& GetBase() const {
return m_Base; return m_Base;
} }
/**
* \brief Retourne l'origine de l'espace affine
*/
const Matrix& GetOrigin() const { const Matrix& GetOrigin() const {
return m_Origin; return m_Origin;
} }