-
Echelonner une matrice
Bonjour.
Voilà, étudiant en deug d'info, pour les besoins d'un projet réalisé en C il faut que j'arrive à échelonner une matrice (de taille 25x25 pour préciser mais sans importance).
Seulement j'ai pas vraiment compris comment fonctionne l'échelonnage d'une matrice mathématiquement parlant, et du coup je suis incapable de faire mon algo, j'ai bien essayé des trucs mais en vain.
Alors je fais appel à une âme charitable qui pourrait m'expliquer clairement comment ça fonctionne et comment je dois m'y prendre pour mon algo :oops:
Merci d'avance. =)
-
Une matrice échelonnée (si je me souviens bien) est une matrice dont la première ligne totalement nulle n'est suivie que par des lignes totalement nulles et donc les premiers éléments non nuls d'une ligne ont un indice de colonnes supérieures à l'indice de colonne du premier élément non nul de la ligne précédente (ouf, j'y suis arrivé). A vérifier.
L'idée générale est donc de provoquer l'annulation forcée du premier élément non nul de chaque ligne(sauf celui de la première ligne) en faisant des combinaisons linéaires des lignes
exemple:
si a11!=0 on laisse L(igne1) inchangée
a11L2-a21L1 pour la deuxième ligne
a11L3-a31L1 pour la troisième ligne etc
Au bout de la manip on doit se retrouver avec un premier coefficient de deuxième ligne nul et donc le premier coefficient de la ligne deux non nul devient a22 et satisfait la définition.
On a une matrice telle que ai1 =0 V(quelque soit) i !=1
On continue: maintenant c'est le premier élément non nul de la seconde ligne qui nous intéresse et on veut éliminer les coefficients de la même colonne sur les lignes inférieures.
a22L1-a12L2
L2 reste inchangée
a22L3-a32L2 etc
manip qui va éliminer tous les coefficients de la colonne 2 sauf a22
on continue jusqu'à la dernière.
Il faut prévoir les cas où le premier élément d'une ligne est nul, à ce moment là inverser cette ligne avec la suivante tant que le coefficient est nul.
Un calcul de pgcd est une première amélioration pour éviter des multiplications intempestives entre les coefficients.
-
En fait, on aboutit à une diagonalisation.
L'adaptation ne devrait pas poser de problèmes.
-
on aboutit a une triangularisation je doit dire, c pas une diagonalisation
-
Absolument vrai.
Mais la démarche est la même, cela dit pour les lignes du dessus.
En fait, j'avais en tête matrice associées etc...