44 lines
1.2 KiB
C++
44 lines
1.2 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 {
|
|
public:
|
|
/**
|
|
* \brief Calcule l'image d'une matrice
|
|
* \param a_Matrix La matrice à traiter
|
|
* \return L'espace vectoriel correspondant
|
|
*/
|
|
Vect Image(const Matrix& a_Matrix) const;
|
|
|
|
/**
|
|
* \brief Calcule le noyau d'une matrice
|
|
* \param a_Matrix La matrice à traiter
|
|
* \return L'espace vectoriel correspondant
|
|
*/
|
|
Vect Kernel(const Matrix& a_Matrix) const;
|
|
|
|
/**
|
|
* \brief Résout le système rectangulaire de la forme AX=B, avec X et B, des vecteurs colonne.
|
|
* \param a_MatrixA La matrice jouant le rôle de A
|
|
* \param a_VectorB La matrice colonne jouant le rôle de B
|
|
* \return L'espace affine associé
|
|
*/
|
|
VectAffine RectangularSystem(const Matrix& a_MatrixA, const Matrix& a_VectorB) const;
|
|
|
|
/**
|
|
* \brief Calcule le rang d'une matrice
|
|
* \param a_Matrix La matrice à traiter
|
|
* \note Ceci équivaut à \code Image(a_Matrix).GetCardinal() \endcode
|
|
*/
|
|
std::size_t Rank(const Matrix& a_Matrix) const;
|
|
}; |