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.
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'':
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.
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:
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.
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:
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}\).