51 lines
1.0 KiB
C++
51 lines
1.0 KiB
C++
#pragma once
|
|
|
|
/**
|
|
* \file Solver.h
|
|
* \brief Contient la définition du solutionneur
|
|
*/
|
|
|
|
#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, avec X et B, des vecteurs colonne.
|
|
* 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;
|
|
}; |