Résolution de systèmes simples d'équations
Algèbre linéaire

Le problème

Le but de ce TD est de programmer une méthode de résolution de systèmes d'équations linéaires simples. Par systèmes simples, j'entends que :

Considérons le système suivant (solution = 3, 5, 7) :

3xl -2x2+x3 = 6
-x1 +3x2-x3 = 5
5xl+x2-4x3 = -8

Ce système d'équation peut bien sûr être considéré du point de vue de l'algèbre linéaire comme la multiplication d'une matrice (3 sur 3) des coefficients par un vecteur colonne des inconnues le tout étant égal à un vecteur colonne second membre.

Il existe essentiellement deux méthodes de résolution d'un tel système :

Triangulation de la matrice des coefficients

La méthode est simple.

Substitution arrière :

Là encore rien de bien compliqué, la dernière équation étant pratiquement résolue.

Mise en garde

Cette méthode risque d'échouer lamentablement si la matrice est singulière. Il y a également un problème lorsque le pivot est nul ...

Programmation

Nous reprendrons bien entendu la structure de données du TD concernant la petite bibliothèque d'algèbre linéaire ainsi que les procédures déjà écrites qui nous seront utiles.

En plus des opérations déjà programmées, nous aurons besoin des procédures suivantes

La manière la plus simple d'effectuer les mêmes opérations sur la matrice et sur le second membre consiste à intégrer ce dernier en bout de la matrice et nécessite donc l'écriture des deux procédures suivantes

Sans oublier, bien évidemment, la procédure de substitution arrière et la mise en forme de toutes ces opérations dans le programme principal.

Deux dernières choses (pour les gens qui seraient en avance) :

  1. la matrice peut être singulière ! !
  2. les pivots peuvent être nuls !!