1.4 Transformer un système en un autre

Notre but pour la suite du chapitre est de présenter une méthode qui permet de savoir si un système est compatible ou incompatilbe et qui, lorsqu'il est compatible, permet en plus de décrire précisément l'ensemble de toutes ses solutions.

Cette méthode est utile non-seulement parce qu'elle mène à un algorithme (l'algorithme de Gauss) que l'on peut facilement implémenter sur une machine à l'aide d'un programme de quelques lignes, mais aussi parce qu'elle fournit un résultat théorique qui sera utilisé souvent dans la suite du cours.

Attention: Ce que nous présentons ci-dessous est une méthode de calcul. Elle sera utilisée souvent dans la suite du cours, mais ne constitue pas, en soi, ''l'essence de l'algèbre linéaire''!
Un idéal: les systèmes triangulaires

Pour comprendre l'idée derrière la méthode générale qui va suivre, commençons par considérer un type de système dont la structure suggère elle-même une méthode de résolution.

Exemple: Considérons le système \(3\times 3\) suivant: \[ (*) \left\{ \begin{array}{ccccccc} x_1 &-& x_2 &+& 2x_3 &=& 4\\ && x_2 &-& 3x_3 &=& -5\\ &&&& 5x_3 &=& 10 \end{array} \right.\,, \] que l'on peut comprendre comme étant en fait \[ (*) \left\{ \begin{array}{ccccccc} x_1 &-& x_2 &+& 2x_3 &=& 4\\ {\color{red}0x_1} &+& x_2 &-& 3x_3 &=& -5\\ {\color{red}0x_1} &+& {\color{red}0x_2} &+& 5x_3 &=& 10 \end{array} \right. \] La présence des zéros en bas à gauche donne à ce système une structure triangulaire, qui suggère une résolution simple, ''du bas vers le haut'':

  1. Dans la troisième équation, on calcule \(x_3=\frac{10}{5}=2\).
  2. On injecte \(x_3\) dans la deuxième équation, pour trouver \[x_2=-5+3x_3=-5+6=1\,.\]
  3. On injecte \(x_3\) et \(x_2\) dans la première équation, pour trouver \[x_1=4+x_2-2x_3=4+1-4=1\,.\]
Donc la solution est unique, donnée par \((x_1,x_2,x_3)=(1,1,2)\).

Le système de ce dernier exemple était très particulier, puisque les coefficients \(a_{21}=a_{31}=a_{32}=0\), lui conférant une structure simple à traiter. Mais même si le système était très grand, toujours avec la même structure triangulaire, \[ (*) \left\{ \begin{array}{ccccccccccccc} x_1 &+& 2x_2 &-& 4x_3 &-& 8x_4 &+& x_5 &+& 9x_6 &=& -3\\ && x_2 &+& 4x_3 &-& 5x_4 &+& x_5 &-& x_6 &=& 6\\ && && x_3 &+& 6x_4 &+& x_5 &-& 6x_6 &=& -2\\ && && && -x_4 &+& x_5 &+& x_6 &=& 3\\ && && && && 4x_5 &+& x_6 &=& 0\\ && && && && && 7x_6 &=& 11\\ \end{array} \right. \] on traiterait le problème de la même façon, ''du bas vers le haut''...

Voyons un autre exemple dans lequel on profite de la présence de coefficients nuls dans la partie inférieure gauche, mais où le nombre de variables est supérieur au nombre d'équations:

Exemple: Considérons \[ \left\{ \begin{array}{ccccccc} 2x_1 &+& x_2 &-& x_3 &=& 0\\ {\color{red}0x_1} &+& x_2 &+& 2x_3 &=& 3 \end{array} \right. \] Ce système \(2\times 3\) n'est pas ''aussi triangulaire'' que l'on voudrait. Pourtant, une opération naturelle est de déplacer les termes contenant \(x_3\) du côté droit, pour récrire ce système comme \[ \left\{ \begin{array}{ccccc} 2x_1 &+& x_2 &=& x_3\\ {\color{red}0x_1} &+& x_2 &=& 3-2x_3 \end{array} \right. \] Écrit sous cette forme, on voit qu'on peut choisir la valeur de \(x_3\), ce qui fixe le côté droit, et qu'on se retrouve ensuite avec un système \(2\times 2\) triangulaire dont second membre dépend de \(x_3\). Puisque la valeur de \(x_3\) peut être choisie, on dit que c'est une variable libre, elle joue le rôle de paramètre; on la notera plutôt \(t\): \[ \left\{ \begin{array}{ccccc} 2x_1 &+& x_2 &=& t\\ && x_2 &=& 3-2t \end{array} \right. \] Procédant ''du bas vers le haut'', on obtient \(x_2=3-2t\), puis \[x_1=\tfrac12(t-x_2)=\tfrac12 (t-(3-2t))=\tfrac32(t-1)\,.\] On a donc, pour tout choix de \(t\), une solution \((x_1,x_2,x_3)\) donnée par \[\begin{aligned} x_1&=\tfrac32(t-1)\\ x_2&=3-2t\\ x_3&=t\,. \end{aligned}\] On peut donc écrire l'ensemble de toutes les solutions de la façon suivante: \[S=\{(\tfrac32(t-1),3-2t,t)\,:\,t\in \mathbb{R}\}\,.\]

Ainsi, la stratégie générale, pour résoudre un système quelconque, sera d'arriver à le transformer en un système aussi triangulaire que possible. Pour que ce nouveau système soit utile, il faudra être sûr que son ensemble de solutions soit exactement le même que le système de départ.

Opérations élémentaires

Considérons un système \(m\times n\), noté \((*)\). Dans la suite, on utilisera le symbole \(L_i\) pour représenter la \(i\)ème ligne de \((*)\): \[ L_i:\qquad a_{i1}x_1+a_{i2}x_2+\dots+a_{in}x_n=b_i\,. \] Définissons plusieurs façons d'agir sur les lignes d'un système:

  1. L'opération consistant à échanger les lignes \(i\) et \(j\) est appelée opération élémentaire de Type I, et sera notée \[ \boxed{L_i\leftrightarrow L_j}\]
  2. L'opération consistant à multiplier la \(i\)ème ligne par un scalaire non-nul \(\lambda\in \mathbb{R}^*\) est appelée opération élémentaire de Type II, et sera notée \[ \boxed{L_i \leftarrow \lambda L_i} \]
  3. L'opération consistant à rajouter à la \(i\)ème ligne un multiple (par un scalaire \(\lambda\)) de la \(j\)ème est appelée opération élémentaire de Type III, et sera notée \[ \boxed{L_i\leftarrow L_i+\lambda L_j}\]

Une opération élémentaire a pour effet de transformer un système linéaire \((*)\) en un autre système linéaire \((*)'\), de même dimension; ces deux systèmes sont alors dits équivalents selon les lignes (ou ligne-équivalents).

Exemple: Considérons le système \[ (*) \left\{ \begin{array}{ccccccccc} x_1 &+& 3x_2 &+& x_3 &+& 4x_4 &=& 3\\ 2x_1 &+& 5x_2 &+& x_3 &-& x_4 &=& -1\\ -x_1 &-& 2x_2 &-& 3x_3 &-& 9x_4 &=0& \end{array} \right. \]

Un propriété remarquable des opérations définies ci-dessus est qu'elles sont toutes inversibles, dans le sens suivant: si \((*)'\) s'obtient en appliquant une opération élémentaire (de Type I, II ou III) à \((*)\), alors il existe une opération élémentaire réciproque qui permet, si on l'applique à \((*)'\), de revenir au système \((*)\) de départ.

  1. La réciproque de \(L_i\leftrightarrow L_j\) est \(L_i\leftrightarrow L_j\) (évident).
  2. La réciproque de \(L_i\leftarrow \lambda L_i\) (\(\lambda\in \mathbb{R}^*\)) est \(L_i\leftarrow \frac{1}{\lambda}L_i\) (en effet, on peut ''défaire'' la multiplication de la ligne \(i\) par \(\lambda\) en... divisant la ligne \(i\) par \(\lambda\)).
  3. La réciproque de \(L_i\leftarrow L_i+\lambda L_j\) est \(L_i\leftarrow L_i-\lambda L_j\) (évident).

Comme conséquence de l'inversibilité:

Théorème: Soient deux systèmes de mêmes dimensions, \((*)\) et \((*)'\). Si \((*)'\) est obtenu à partir de \((*)\) par une d'opération élémentaire, alors \((*)\) et \((*)'\) ont le même ensemble de solutions: \[ S_{(*)}=S_{(*)'}\,. \]

L'usage du théorème ci-dessus se fera comme suit:

Soient deux systèmes de mêmes dimensions, \((*)_1\) et \((*)_2\). Si \((*)_2\) peut être obtenu à partir de \((*)_1\) par une suite finie d'opérations élémentaires, \[ (*)_1\rightsquigarrow \dots \rightsquigarrow (*)_2\,, \] alors \((*)_1\) et \((*)_2\) ont le même ensemble de solutions: \[ S_{(*)_1}=S_{(*)_2}\,. \]

Par le théorème, on sait que lors de chaque étape, l'ensemble de solutions est préservé. Puisqu'il y un nombre fini d'étapes, ceci implique \(S_{(*)_1}=S_{(*)_2}\).

Ce dernier corollaire suggère une méthode de résolution d'un système \(m\times n\) quelconque: puisque les opérations élémentaires ne changent pas l'ensemble des solutions, on pourra appliquer au système de départ des opérations qui font peu à peu apparaître des zéros dans la partie inférieure gauche. Une fois le système ''triangularisé'', on procédera ''du bas vers le haut'', comme vu précédemment.

Plutôt que d'écrire explicitement un algorithme très général, considérons un premier exemple, qui contient déjà l'idée de la méthode, et montre dans quel ordre les opérations élémentaires sont choisies:

Exemple: Considérons le système \[ (*)_1 \left\{ \begin{array}{ccccccc} 3x_1 &+& 5x_2 &+& 4x_3 &=&1 \\ 6x_1 &+& 12x_2 &+& 6x_3 &=&0 \\ -2x_1 &-& 2x_2 &-& 7x_3 &=&5 \end{array} \right. \] D'abord, simplifions la deuxième ligne en la divisant par \(6\), ce qui revient à faire \(L_2\leftarrow \frac16 L_2\): \[ (*)_1' \left\{ \begin{array}{ccccccc} 3x_1 &+& 5x_2 &+& 4x_3 &=&1 \\ x_1 &+& 2x_2 &+& x_3 &=&0 \\ -2x_1 &-& 2x_2 &-& 7x_3 &=&5 \end{array} \right. \] Regardons maintenant la première colonne, et les coefficients présents devant \(x_1\). Pour ce qui va suivre, on a avantage à faire \(L_1\leftrightarrow L_2\): \[ (*)_1'' \left\{ \begin{array}{ccccccc} x_1 &+& 2x_2 &+& x_3 &=&0 \\ 3x_1 &+& 5x_2 &+& 4x_3 &=&1 \\ -2x_1 &-& 2x_2 &-& 7x_3 &=&5 \end{array} \right. \] On va maintenant profiter du ''\(x_1\)'' en haut à gauche, appelé pivot, pour faire apparaître des zéros dans la partie inférieure de la première colonne. Par exemple, pour faire disparaître le ''\(3x_1\)'' de la deuxième ligne, on a besoin de lui soustraire \(3\) fois la première ligne. Donc en faisant \(L_2\leftarrow L_2-3L_1\), on obtient \[ (*)_1''' \left\{ \begin{array}{ccccccc} {\color{blue}x_1} &+& 2x_2 &+& x_3 &=&0 \\ {\color{red}0x_1} &-& x_2 &+& x_3 &=&1 \\ -2x_1 &-& 2x_2 &-& 7x_3 &=&5 \end{array} \right.\,. \] Ensuite, en faisant \(L_3\leftarrow L_3+2 L_1\), \[ (*)_1'''' \left\{ \begin{array}{ccccccc} {\color{blue}x_1} &+& 2x_2 &+& x_3 &=&0 \\ {\color{red}0x_1} &-& x_2 &+& x_3 &=&1 \\ {\color{red}0x_1} &+& 2x_2 &-& 5x_3 &=&5 \end{array} \right.\,. \] Ensuite, on passe à la deuxième colonne. C'est maintenant le ''\(-x_2\)'', dans \(L_2\), qui joue le rôle de pivot et dicte le choix de l'opération suivante, qui fait apparaître encore un zéro au bas de la deuxième colonne: \(L_3\leftarrow L_3+2L_2\), qui donne \[ (*)_2=(*)_1''''' \left\{ \begin{array}{ccccccc} x_1 &+& 2x_2 &+& x_3 &=&0 \\ {\color{red}0x_1}&{\color{blue}-}& {\color{blue}x_2} &+& x_3 &=&1 \\ {\color{red}0x_1}&+& {\color{red}0x_2} &-& 3x_3 &=&7 \end{array} \right. \] Remarquons que dans cette dernière étape, l'opération élémentaire n'a pas affecté les zéros de la première colonne!

En transformant \((*)_1\) en \((*)_2\), nous dirons plus loin que nous avons échelonné le système.

En procédant ''du bas vers le haut'' dans \((*)_2\), on obtient \[S_{(*)_2}=\{(\tfrac{27}{3},-\tfrac{10}{3},-\tfrac73)\}\,,\] et le corollaire permet de conclure que \(S_{(*)_1}=S_{(*)_2}\).

Quiz 1.4-1 : Vrai ou faux?
  1. Si un système est obtenu à partir d'un autre par une suite infinie d'opérations élémentaires, alors ces deux systèmes ont le même ensemble de solutions.
  2. La composition de deux opérations élémentaires est une opération élémentaire.
  3. Si un système \((*)'\) a été obtenu à partir de \((*)\) en faisant \(L_i\leftarrow L_i+\lambda L_j\), alors on peut récupérer le système \((*)\) en appliquant \(L_i\leftarrow L_i-\lambda L_j\) à \((*)'\).
  4. Si \(\lambda\in \mathbb{R}^*\), alors \(L_i\leftarrow L_i+\lambda L_i\) est une opération élémentaire.