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 incompatible 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 de taille \(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_{2,1}=a_{3,1}=a_{3,2}=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 de taille \(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 d'équations linéaires triangulaire de taille \(2\times 2\) dont second membre dépend de \(x_3\). Comme 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 \big(t-(3-2t)\big)=\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=\Big\{\big(\tfrac32(t-1),3-2t,t\big)\,:\,t\in \mathbb{R}\Big\}\,.\]

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 de taille \(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_{i,1}x_1+a_{i,2}x_2+\dots+a_{i,n}x_n=b_i\,. \] Définissons plusieurs façons d'agir sur les lignes d'un système:

\phantom{x}

Une opération élémentaire sur les lignes 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). Pour simplifier, les opérations élémentaires sur les lignes, seront souvent appelées opérations élémentaires.

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é:

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 de la proposition ci-dessus se fera comme suit:

Théorème: 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 de taille \(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}=\Big\{\big(\tfrac{27}{3},-\tfrac{10}{3},-\tfrac73\big)\Big\}\,,\] 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.