Systèmes linéaires et calcul matriciel
Cours complet · mathématiques (ECT 1re année), chapitre 8 · prépa ECT, 1re année
Travailler ce chapitre sur Adloun Exercices corrigés de ce chapitre
Une entreprise fabrique trois produits, et chacun consomme des heures dans trois ateliers. Combien produire de chaque, pour occuper exactement les heures disponibles ? La question s'écrit en trois équations à trois inconnues, et ce chapitre donne la méthode qui les résout à coup sûr : le pivot de Gauss. Il donne aussi l'outil qui range ces données sans les recopier dix fois : la matrice, un tableau de nombres muni d'opérations qui traduisent des calculs de gestion.
Le programme est explicite dès sa première ligne : « Ce chapitre sera repris, en deuxième année, avec une étude plus spécifique des matrices carrées. Tout développement théorique est hors programme. »
Il ajoute, pour le pivot : « On présentera la méthode du pivot de Gauss à l'aide d'exemples numériques et on se limitera à des systèmes de trois équations à trois inconnues. » Et pour les matrices : « La notation des coefficients sous la forme n'est pas un attendu du programme. Le programme exclut toute notion de structure. »
On travaille donc sur des nombres, avec des exemples issus de situations concrètes. Rien ne sera démontré sur les matrices : le programme précise que « les propriétés des opérations seront admises sans démonstration et illustrées sur des exemples ».
8.1 Systèmes linéaires
Une équation est linéaire en les inconnues , , lorsqu'elle s'écrit , avec , , , réels : les inconnues n'y apparaissent qu'à la puissance , jamais multipliées entre elles, jamais sous une racine.
Un système linéaire est une liste de telles équations. Le résoudre, c'est décrire tous les triplets qui les vérifient toutes à la fois.
Pour le système et , ajouter les deux lignes fait disparaître : , donc , et la seconde ligne donne .
Contrôle, toujours : et . Le couple est bien solution, et c'est la seule.
Chaque équation est l'équation d'une droite du plan. Résoudre le système, c'est chercher les points communs à ces droites. Il n'y a donc que trois issues possibles :
- les droites se coupent en un point : une solution ;
- elles sont strictement parallèles : aucune solution ;
- elles sont confondues : une infinité de solutions.
Un système linéaire n'a jamais exactement deux solutions.
Chaque équation décrit alors un plan de l'espace, et les trois mêmes issues subsistent : un point, aucun point, ou une infinité. Cette lecture explique pourquoi la liste des cas ne s'allonge pas.
8.2 Les opérations élémentaires sur les lignes
Trois transformations ne changent pas l'ensemble des solutions d'un système. On les note ainsi, et on les écrit à côté de la ligne transformée :
- : échanger deux lignes ;
- avec : multiplier une ligne par un nombre non nul ;
- avec : ajouter à une ligne un multiple d'une autre ligne.
On combine les deux dernières en , avec et .
Dans , la ligne sert sans être touchée : elle reste disponible pour la suite. Écrire au contraire et dans le même mouvement, en se servant deux fois de valeurs déjà modifiées, produit un système qui n'a plus rien à voir avec le premier. Une opération à la fois, et on note laquelle.
8.3 La méthode du pivot de Gauss
Descente. On choisit dans la première colonne un coefficient non nul, le pivot, et on s'en sert pour faire apparaître des zéros en dessous de lui. On recommence avec la deuxième colonne, sans plus toucher à la première ; puis avec la troisième. Le système devient triangulaire.
Remontée. La dernière équation ne contient plus qu'une inconnue : on la calcule, on la reporte dans l'avant-dernière, et ainsi de suite jusqu'en haut.
Un atelier assemble trois modèles, en quantités , et . On connaît le nombre total d'articles, le nombre de composants et le nombre d'heures consommées :
Descente. Le pivot est le de la première ligne.
Le nouveau pivot est le de la deuxième ligne : donne .
Remontée. De on tire . Puis donne . Enfin .
Contrôle. ; ; . Le triplet est bien l'unique solution.
Chaque opération élémentaire se défait par une opération de même nature : le système obtenu a donc exactement les mêmes solutions que celui de départ. C'est ce qui distingue le pivot des combinaisons astucieuses trouvées au cas par cas : il marche sur n'importe quel système, y compris ceux qui n'ont pas de solution — et il le dit.
Python : Contrôler une solution plutôt que la recopier
import numpy as np
A = np.array([[1, 1, 1], [2, 1, 3], [1, 4, 2]])
B = np.array([100, 220, 240])
X = np.array([20, 30, 50])
print(A @ X) # [100 220 240]
print(np.shape(A)) # (3, 3)
print(np.all(A @ X == B)) # True
Le symbole @ est le produit matriciel de numpy ; np.shape rend le couple (nombre de lignes, nombre de colonnes). La machine ne résout pas le système ici : elle vérifie le résultat, ce qui est exactement le contrôle qu'on doit faire à la main.
Considérons
L'opération donne : aucun triplet ne peut vérifier cela, le système n'a pas de solution, il est incompatible. Si la seconde ligne avait été , la même opération aurait donné — une ligne qui ne dit rien, et une infinité de solutions.
Si le coefficient choisi comme pivot est nul, l'opération ne fabrique aucun zéro. On échange alors deux lignes () pour amener un coefficient non nul en position de pivot : c'est le seul usage de l'échange.
8.4 Matrices
Une matrice à lignes et colonnes est un tableau de nombres réels, rangés en lignes et colonnes et écrits entre parenthèses. L'ensemble de ces matrices se note .
On dit que la matrice est de taille ; on lit toujours les lignes d'abord. Lorsque , la matrice est dite carrée.
Une matrice à une seule ligne () est une matrice ligne ; une matrice à une seule colonne () est une matrice colonne.
Un atelier de menuiserie et un atelier de finition interviennent sur trois meubles : une table demande heures de menuiserie et de finition, une chaise et , une étagère et . On range ces six nombres en , de taille : une ligne par atelier, une colonne par meuble.
8.5 Opérations sur les matrices
On n'additionne que des matrices de même taille, et l'on additionne case par case. Multiplier une matrice par un réel , c'est multiplier chaque case par .
Si donne les heures du premier semestre et celles du second, donne les heures de l'année ; et si tous les temps augmentent de , la nouvelle matrice est . La situation choisit l'opération.
Le produit n'existe que si le nombre de colonnes de est égal au nombre de lignes de . Si est de taille et de taille , alors est de taille .
La case de située à la ligne et à la colonne s'obtient en prenant la -ième ligne de et la -ième colonne de , en multipliant leurs termes deux à deux dans l'ordre, et en ajoutant tout.
Reprenons et produisons tables, chaises et étagères, c'est-à-dire . Alors
La menuiserie travaillera heures et la finition heures. Le produit matriciel n'est pas une convention arbitraire : c'est exactement le calcul qu'on aurait fait à la main.
Pour des tailles compatibles :
et pour tout réel . Le programme demande de les admettre : « les propriétés des opérations seront admises sans démonstration et illustrées sur des exemples ».
Le produit n'est pas commutatif. Avec et :
En conséquence vaut , et non .
Un produit nul n'oblige aucun facteur à l'être. Avec et , est la matrice nulle alors que ni ni ne l'est.
Il n'existe pas de « division » matricielle : l'écriture n'a aucun sens. De on ne peut donc pas conclure : avec , et , les deux produits valent alors que . Ce qui remplacera la division — l'inverse d'une matrice carrée — est au programme de deuxième année, et de là seulement.
Python : Les trois opérations, en une ligne chacune
import numpy as np
M = np.array([[3, 5, 2], [4, 1, 6]])
q = np.array([10, 20, 30])
cout = np.array([25, 18])
print(M @ q) # [190 240]
print(cout @ (M @ q)) # 9070
print(cout @ M) # [147 143 158]
La deuxième ligne donne le coût total en euros ( euros l'heure de menuiserie, euros celle de finition). La troisième donne le coût unitaire de chaque meuble : , et euros. Et : les deux chemins donnent le même total, c'est l'associativité vue sur un cas.
8.6 Écriture matricielle d'un système
Le système
avec
est la matrice des coefficients, la colonne des inconnues, celle des seconds membres.
En première année, l'écriture est surtout un rangement : le pivot reste l'outil de résolution. C'est en deuxième année, avec l'étude des matrices carrées, qu'elle deviendra un instrument de calcul à part entière.