Méthodes de Résolution des Systèmes Linéaires
Méthodes de Résolution des Systèmes Linéaires
Systèmes linéaires
Version enseignant Mourad ABOUZAID
ISABTP 3○ année
2021-2022
1 Définitions 5
2 Systèmes de Cramer 11
2.1 Résolution théorique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Systèmes de Cramer triangulaires . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 Le pivot de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 Applications du Pivot de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3
Introduction
De nombreux problème (physiques et mathématiques) peuvent se traduire sous forme
d’équations linéaires ou de familles d’équations linéaires. Or les matrices et le calcul ma-
triciel donnent un outil très efficace pour représenter ces types de problèmes et plus
généralement tout problème ayant un caractère linéaire :
Après quelques rappels théoriques sur systèmes linéaires et de leurs solutions, nous
verrons comment, en traduisant la résolution d’un système en termes d’opérations matri-
cielles, on peut élaborer ces méthodes algorithmiques.
Nous étudierons essentiellement une méthode : le pivot de Gauss ; dont l’idée générale
est de construire, à partir du système de départ, un système équivalent (i.e. qui admet
les mêmes solutions), plus simple à résoudre. Dans le cas du pivot de Gauss, l’objectif est
d’obtenir un système triangulaire.
1 Définitions
Une équation linéaire portant sur les inconnues x1 , . . . , xp est une équation de la forme
(E) ∶ a1 x1 + a2 x2 + . . . + ap xp = b
où
5
Définition (système linéaire)
Un système linéaire portant sur les inconnues x1 , . . . , xp est la donnée d’un ensemble
d’équations linéaires portant sur les inconnues x1 , . . . , xp :
⎧
⎪ a11 x1 + ⋯ + a1p xn = b1 (E1 )
⎪
⎪
⎪
⎪ a x + ⋯ + a2p xn = b2 (E2 )
(S) = ⎨ 21 1 = {(E1 ), . . . , (En )}
⎪
⎪ ⋮ ⋮ ⋮
⎪
⎪
⎪
⎩ n1 1
a x + ⋯ + a x
np n = b n (En )
Ici,
● p ∈ N∗ est le nombre d’inconnues.
● n ∈ N∗ est le nombre d’équations.
● Les réels aij ∈ R (connus) sont les coefficients du système (S).
● Les réels bi ∈ R (connues) forment le second membre de (S).
S’ils sont tous nuls, le système est dit homogène.
● Deux systèmes linéaires (S1 ) et (S2 ) sont dits équivalents si ils possèdent le même
ensemble de solutions.
Note : l’ensemble Σ des solutions d’un système linéaire à p inconnues est donc un
sous ensemble de Rp . Dans les cas p = 2 et p = 3, il est alors possible de représenter cet
ensemble comme une partie du plan ou de l’espace, munis de repères.
Précisément,
● En dimension 2, chaque équation peut être associée à une droite du plan, muni
d’un repère.
● En dimension 3, chaque équation peut être associée à un plan de l’espace muni
d’un repère.
7
droites ou de plans (exercice : faire la liste des différentes intersections possibles dans le
plan et dans l’espace).
Enfin, tout système linéaire peut être représenter sous forme matricielle. Précisément,
Définition (matrices d’un système linéaire)
Soit (S) un système linéaire de n équations à p inconnues. Avec les notations ci-dessus,
on appelle
⎛ a11 ⋯ a1p ⎞
⎜ a21 ⋯ a2p ⎟
● A=⎜ ⎟ ∈ Mnp (R) la matrice de (S),
⎜ ⋮ ⋮ ⎟
⎝ an1 ⋯ anp ⎠
⎛ x1 ⎞
● X = ⎜ ⋮ ⎟ ∈ Mp,1 (R) le vecteur inconnu,
⎝ xp ⎠
⎛ b1 ⎞
● B = ⎜ ⋮ ⎟ ∈ Mn,1 (R) le vecteur second membre.
⎝ bn ⎠
D’après la définition du produit de matrice, on a alors
(S) ⇐⇒ A × X = B
9
2 Systèmes de Cramer
2.1 Résolution théorique
X0 = A−1 × B ∈ Rn
Par analogie, les systèmes de Cramer sont également dits inversibles.
D’un point de vue pratique, la résolution d’un tel système est donc équivalent au calcul
de la matrice inverse A−1 .
Notons que Cramer a également donné des formules permettant d’exprimer les coor-
données de l’unique solution X0 cherchée à l’aide de déterminants.
det(Aj )
∀j ∈ {1, . . . , n}, xj =
det(A)
Cependant, bien que particulièrement élégante, cette formule n’est jamais utilisée (sauf
éventuellement sur des tout petits systèmes linéaires) car son application nécessite le
calcul de n + 1 déterminants de taille n × n. Or nous verrons dans la suite que la résolution
pratique du système AX = B est équivalente (en temps de calcul) au calcul d’un seul de
ces déterminants.
11
Autrement dit, un système triangulaire (supérieur) est de la forme
⎧
⎪ a11 x1 + a12 x2 + . . . + a1,n−1 xn−1 + a1n xn = b1 (E1 )
⎪
⎪
⎪
⎪
⎪
⎪ a22 x2 + . . . + a2,n−1 xn−1 + a2n xn = b2 (E2 )
⎪
(T ) ∶ ⎨ ⋱ ⋮ ⋮
⎪
⎪
⎪
⎪
⎪ an−1,n−1 xn−1 + an−1,n xn = bn−1 (En−1 )
⎪
⎪
⎪
⎩ ann xn = bn (En )
On peut montrer qu’un tel système est inversible si et seulement si aucun de ses coefficients
diagonaux n’est nul.
1 ⎛ n ⎞
(Ej ) ⇒ xj = bj − ∑ ajk xk
ajj ⎝ k=j+1 ⎠
13
Entrées : A = (aij ) ∈ Mn (R), B = (b1 , . . . , bn ) ∈ Rn
4. d ← bj − s
5. xj ← d/ajj
6. Renvoyer X = (x1 , . . . , xn )
Le principe du pivot est basé sur deux opérations élémentaires que l’on peut effec-
tuer sur les équations d’un système (ou sur les lignes de sa matrice étendue) permettant
15
d’éliminer certaines inconnues de certaines équations, sans changer l’ensemble des solu-
tions. Ces deux opérations élémentaires sont :
● La combinaison : (Ei ) ← (Ei ) + λ.(Ej ), i ≠ j et λ ∈ R.
Note : dans certaines applications, on pourra également faire appel à une troisième
opération élémentaire : la multiplication extérieure :
2.3.2 Un exemple
Considérons le système suivant :
⎧
⎪ 2x1 + x2 − 2x3 + x4 = 0
⎪
⎪
⎪
⎪ 4x1 − x2 + 4x3 − 2x4 = 6
⎨
⎪
⎪ x1 − x2 + 2x3 − x4 = 3
⎪
⎪
⎪
⎩ −2x1 + 2x2 − 2x3 − x4 = −3
⎛ 2 1 −2 1 0 ⎞
⎜ 4 −1 4 −2 6 ⎟
à = ⎜ ⎟
⎜ 1 −1 2 −1 3 ⎟
⎝ −2 2 −2 −1 −3 ⎠
L2 ← L2 − 2L1
L3 ← L3 − 12 L1 ,
L4 ← L4 + L1 .
17
⎛ 2 1 −2 1 0 ⎞
⎜ 0 −3 8 −4 6 ⎟
Ã(2) = ⎜ ⎟.
⎜ 0 − 32 3 − 32 3 ⎟
⎝ 0 3 −4 0 −3 ⎠
L4 ← L4 + L2
⎛ 2 1 −2 1 0 ⎞
⎜ 0 −3 8 −4 6 ⎟
Ã(3) = ⎜ ⎟.
⎜ 0 0 −1 21 0 ⎟
⎝ 0 0 4 −4 3 ⎠
Note : cette seconde étape revient, du point de vue du système à supprimer la va-
riable y des deux dernières équations.
L4 ← L4 + 4L3
⎛ 2 1 −2 1 0 ⎞
⎜ 0 −3 8 −4 6 ⎟
Ã(4) = ⎜ ⎟.
⎜ 0 0 −1 1
2 0
⎟
⎝ 0 0 0 −2 3 ⎠
On a ici terminé le pivot de Gauss. Le système (S) de départ est donc équivalent au
système triangulaire
19
⎧
⎪ 2x1 + x2 − 2x3 + x4 = 0
⎪
⎪
⎪
⎪ − 3x2 + 8x3 − 4x4 = 6
(S) ∶ ⎨
⎪
⎪ − x3 − 12 x4 = 0
⎪
⎪
⎪
⎩ − 2x4 = 3
2.3.3 L’algorithme
À partir de l’exemple que l’on vient de voir, on peut construire les premières fonctions
de l’algorithme du pivot de Gauss.
Pour cela, il faut généraliser les opérations précédentes à une matrice générale A de
la forme
⎛ a11 a12 a13 ⋯ a1n ⎞
⎜ a21 a22 a23 ⋯ a2n ⎟
⎜ ⎟
A = (aij ) = ⎜
⎜ a31 a32 a33 ⋯ a3n ⎟
⎟
⎜ ⋮ ⋮ ⋮ ⋱ ⋮ ⎟
⎜ ⎟
⎝ an1 an2 an3 ⋯ ann ⎠
Le premier pivot est a11 . Pour construire A(2) , on effectue les opérations
a21
L2 ← L2 − L1
a11
a31
L3 ← L3 − L1
a11
⋮
an1
Ln ← Ln − L1
a11
D’un point de vue algorithmique, cette opération correspond à une boucle Pour :
21
Pour i allant de 2 à n :
ai1
Li ← Li − L1
a11
à une matrice A(j+1) qui contient une colonne de zéros supplémentaire, on effectue les
opérations
(j)
aj+1,j
Lj+1 ← Lj+1 − (j)
Lj
ajj
⋮
(j)
anj
Ln ← Ln − (j)
Lj
ajj
Dans une première approche, le pivot de Gauss se résume donc à une double boucle
Pour, permettant de traiter toutes les colonnes une par une. Cependant, on constate qu’à
chaque étape, on divise par le pivot ajj . Cela n’est donc valable si, pour chaque colonne,
le pivot est non nul. Or rien ne nous garantie que cela soit le cas.
23
Exemple : soit
⎛ 1 −1 0 ⎞
A = ⎜ 1 −1 1 ⎟
⎝ 0 1 1 ⎠
Après la première étape du pivot, on obtient la matrice
⎛ 1 −1 0 ⎞
A2 = ⎜ 0 0 1 ⎟
⎝ 0 1 1 ⎠
Pour pouvoir continuer le Pivot, il faut échanger les deux dernières lignes de A2 :
⎛ 1 −1 0 ⎞
L2 ↔ L3 ↝ A′2 = ⎜ 0 1 1 ⎟
⎝ 0 0 1 ⎠
Une fois que l’on a échangé le pivot avec un pivot non nul, on peut continuer le pro-
cédé. (Ici, on a terminé car la matrice est petite).
Pour trouver un pivot non nul, on a donc parcourus la colonne se trouvant sous le
pivot nul à la recherche d’un coefficient non nul. Une fois repéré, on a échangé la ligne
correspondante avec la ligne du pivot nul.
Notons que, puisque chaque étape modifie l’ensemble des coefficients de la matrice
traitée, il est impossible d’anticiper l’apparition d’éventuels pivots nuls. Pour avoir un
algorithme qui marche, il faut donc ajouter cette boucle/test au cœur de la double boucle
précédente afin de s’assurer que l’on travaille toujours avec un pivot non nul.
Notes :
● Cette boucle/test permet de produire un pivot non nul à condition que l’ordina-
teur puisse trouver, parmi les candidats au pivot, un coefficient non nul. On peut
montrer que c’est toujours le cas si la matrice traitée est inversible.
25
● En pratique, même pour les matrices inversibles, il peut arriver que l’algorithme
n’aboutisse pas ou renvoie un résultat erroné lorsque les coefficients sont trop gros
ou trop petits, de sorte que l’on arrive aux limites de stockage et/ou de précision de
la machine. Ces problèmes interviennent en particulier lorsque l’on travaille avec
de très gros matrices, nécessitant un nombre important de calculs. Pour palier à
ces problèmes, il est possible d’améliorer le choix du pivot, mais les problèmes de
stabilité des coefficients reste un problème difficile en algorithmique.
Or le déterminant d’une matrice triangulaire étant égal au produit de ses termes dia-
gonaux, l’application du Pivot de Gauss puis le produit des termes diagonaux produit
27
un algorithme de calcul de déterminant dont le nombre d’opérations est de l’ordre de
grandeur de celui du Pivot.
Notons que pour connaître le signe du déterminant chercher, on doit stocker, au cours
du pivot le signe (−1)d , d donnant le nombre de permutations effectuées.
À l’issue du processus, on peut en effet montrer que la seconde moitié (I) est alors
remplacée par la matrice A−1 :
⎛ ⎞ ⎛ ⎞
⎜ ⎟ ↝ ⎜ A−1 ⎟
PdG++
A I I
⎝ ⎠ ⎝ ⎠
2. On divise alors chaque ligne par le coefficient diagonal (non nul), pour transformer
la matrice A en la matrice identité.
Enfin, notons que, là encore, cette méthode d’inversion de matrice nécessite un nombre
d’opérations de l’ordre de grandeur de n3 .
29
(i.e. n > p).
De tels systèmes sont dits sur-déterminés. Formellement, ils n’admettent aucune solu-
tion. Cependant, on va voir comment, par une approche géométrique, on peut construire
dans ce cas une solution approchée.
Ainsi, soient
● A = (aij ) une matrice rectangulaire à n lignes et p colonnes, avec n > p,
⎛ b1 ⎞
● B = ⎜ ⋮ ⎟ ∈ Rn un vecteur constant,
⎝ bn ⎠
⎛ x1 ⎞
● X = ⎜ ⋮ ⎟ ∈ Rp un vecteur inconnu.
⎝ xp ⎠
Autrement dit, on cherche un vecteur X qui minimise la norme euclidienne ∣∣AX − B∣∣.
⎛ x1 ⎞
Rappel : la norme euclidienne d’un vecteur X = ⎜ ⋮ ⎟ est
⎝ xn ⎠
¿
Án 2 √ 2
∣∣X∣∣ = Á
À ∑ x = x + . . . + x2
i 1 n
i=1
3.1 Un exemple
Considérons le système
⎧
⎪ 2x − y = 0
⎪
⎪
(S) ∶ ⎨ x + y = 2 ⇐⇒ AX = B
⎪
⎪
⎪
⎩ x − 2y = 0
avec
31
⎛ 2 −1 ⎞ x ⎛ 0 ⎞
A = ⎜ 1 1 ⎟, X = ( ), B = ⎜ 2 ⎟
⎝ 1 −2 ⎠ y ⎝ 0 ⎠
x
On cherche donc le vecteur X = ( ) tel que le vecteur AX − B soit le plus petit
y
possible. On cherche donc un minimum à sa norme
√
∣∣AX − B∣∣ = (2x − y)2 + (x + y − 2)2 + (x − 2y)2
Or on note ici que la fonction ϕ est alors un polynôme de degré 2 dépendant des
variables (x, y). On sait déterminer, s’il existe les extrema de cette fonction de deux
variables. Cela passe en particulier par la détermination des points critiques de ϕ, i.e. les
couples (x, y) qui annulent les dérivées partielles de ϕ. Or
∂ϕ
(x, y) = 4(2x − y) + 2(x + y − 2) + 2(x − 2y)
∂x
= 12x − 6y − 4
∂ϕ
(x, y) = − 2(2x − y) + 2(x + y − 2) − 4(x − 2y)
∂y
= − 6x + 12y − 4
12x − 6y = 4
(S) ∶ {
−6x + 12y = 4
On constate ici que le système obtenu est un système de Cramer dont l’unique solution
est
2 2
(x, y) = ( , )
3 3
33
Ainsi, le protocole ci-dessus produit un unique point critique. On peut alors montrer
que c’est bien un minimum de ϕ (en étudiant par exemple les dérivées seconde de ϕ en
ce point) et donc la meilleure solution possible au système (S).
Or on peut montrer que ce système, appelé système des équations normales de (S) est
le système carré, défini par
t
AAX = t AB.
On peut alors utiliser les méthodes de résolution classiques pour résoudre ce système
normal. D’autre part, la matrice t AA de ce système étant particulière (elle est symétrique,
définie positive), on peut améliorer les méthodes de décomposition et donc la performance
des algorithmes de résolution.
Exercice : montrer que le système des équations normales est un système carré et
donner sa taille en fonction de la taille du système (S).
35
Ici, en notant X0 la solution donnée par la méthode des moindres carrés, l’erreur
absolue commise est alors
ε = ∣∣AX0 − B∣∣
En comparant cette erreur absolue avec "la taille du problème", donnée par exemple
par le vecteur ∣∣B∣∣, on obtient l’erreur relative de la méthode :
∣∣AX0 − B∣∣
εr =
∣∣B∣∣
Note : pour des raisons pratiques, on préfère en général utiliser le carré de cette erreur
relative
∣∣AX0 − B∣∣2
ε2r =
∣∣B∣∣2
∀i ∈ {1, . . . , n}, y i = a xi + b
37
a
X = ( ) ∈ R2
b
⎛ x1 1 ⎞
⎜ x2 1 ⎟
A = ⎜ ⎟ ∈ Mn,2 (R)
⎜ ⋮ ⋮ ⎟
⎝ xn 1 ⎠
⎛ y1 ⎞
⎜ y2 ⎟
B = ⎜ ⎟ ∈ Rn
⎜ ⋮ ⎟
⎝ yn ⎠
Il s’agit donc d’un système de n équations à deux inconnues, qui n’admet une solution
exacte que si l’ensemble des points de N sont parfaitement alignés. Sinon, il s’agit d’un
système sur-déterminé.
Sa résolution à l’aide des équations normales produit alors les coefficients (a, b) de la
droite "la plus proche" de l’ensemble des points de N .
Note : le système des équations normales est ici un système de deux équations à
deux inconnues, dont la résolution permet de retrouver les formules implémentées dans
l’ensemble des tableurs et autres logiciels de calcul statistique :
Cov(x, y)
a = , b = y − ax
V (x)
où
● x et y représentent respectivement les ensembles de données (x1 , . . . , xn ) et
(y1 , . . . , yn ),
Exercice : à faire.
Note : pour évaluer la qualité d’une régression linéaire simple, on s’appuie sur le
coefficient de corrélation linéaire des données x et y, défini par
39
Cov(x, y)
r(x, y) = √ .
V (x)V (y)
Par ailleurs,
n
∣∣B∣∣2 = ∑ yi2 = V (y)
i=1
ε2r = 1 − r2 (x, y)
En pratique, plus le coefficient r est proche de ±1, plus l’erreur εr est proche de 0 et
meilleure est la régression.
z = ax + by + c
passant par l’ensemble des points de N . On doit donc résoudre le système linéaire
constitué des équations
∀i ∈ {1, . . . , n}, zi = a xi + b yi + c
41
⎛ a ⎞
X = ⎜ b ⎟ ∈ R3
⎝ c ⎠
⎛ x1 y1 1 ⎞
⎜ x2 y2 1 ⎟
A = ⎜ ⎟ ∈ Mn,3 (R)
⎜ ⋮ ⋮ ⎟
⎝ xn yn 1 ⎠
⎛ z1 ⎞
⎜ z2 ⎟
B = ⎜ ⎟ ∈ Rn
⎜ ⋮ ⎟
⎝ zn ⎠
On obtient alors le plan cherché en résolvant le système des équations normales associé
à ces matrices.
Ainsi, en dimension 2, il est possible de déterminer la parabole passant au plus près des
points d’un ensemble de points du plan. En effet, en notant N = {(x1 , y1 ), . . . , (xn , yn )},
il s’agit de trouver les coefficients a, b, c de l’équation d’une parabole
y = a x2 + b x + c
soit le système AX = B où
43
⎛ a ⎞
X = ⎜ b ⎟ ∈ R3
⎝ c ⎠
⎛ x21 x1 1 ⎞
⎜ x22 x2 1 ⎟
A = ⎜ ⎟ ∈ Mn,3 (R)
⎜ ⋮ ⋮ ⎟
⎝ xn xn 1 ⎠
2
⎛ y1 ⎞
⎜ y2 ⎟
B = ⎜ ⎟ ∈ Rn
⎜ ⋮ ⎟
⎝ yn ⎠
Par ailleurs, il est là encore possible de généraliser aux polynômes de tous degrés. On
verra en outre qu’il est également possible de généraliser à d’autres types de fonctions
(exponentielle, fonction inverse, etc).
Ainsi, si l’on ajoute au problème une fonction (linéaire) dépendant des variables de
départ, il est possible de déterminer, parmi les solutions du système sous-déterminé étu-
dié, laquelle (ou lesquelles) correspondent à une valeur optimale (maximale ou minimale)
de la fonction supplémentaire.
45
Définition (Programme linéaire)
Notes :
● En général, les contraintes d’un programme linéaire (i.e. les équations du système
différentiel) sont complétées de contraintes de positivité sur les inconnues :
∀i ∈ {1, . . . , p}, xi ⩾ 0
a1 x1 + . . . + ap xp ⩽ b ou a1 x 1 + . . . + ap x p ⩾ b
a1 x 1 + . . . + ap x p ⩽ b ⇒ a1 x 1 + . . . + ap x p + e = b
a1 x 1 + . . . + ap x p ⩾ b ⇒ a1 x 1 + . . . + ap x p − e = b
4.2 Exemples
Exemple 1 : on considère un chantier que l’on doit terrasser. Pour cela, on a
deux zones à déblayer (les déblais) deux zones à remblayer (les remblais)
un talus D1 de 5000 m3 , un trou R1 de 3000 m3 ,
un talus D2 de 4000 m3 , un trou R2 de 6000 m3 .
47
D’autre part, on dispose pour le travail d’engins de chantier dont le coût par centaine
de m3 déplacé est présenté dans le tableau ci-dessous (dans lequel apparaissent également
les quantités de matériaux à déplacer) :
R1 R2 Déblais
D1 168 euro/u. 148 euro/u. 50
D2 158 euro/u. 140 euro/u. 40
Remblais 30 60 90
Par ailleurs, pour rendre le terrain complètement plat, les quatre inconnues ci-dessus
doivent vérifier les équations ci-dessous :
● Le talus D1 est vidé ⇒ x11 + x12 = 50
⎛ 1 1 0 0 50 ⎞
⎜ 0 0 1 1 40 ⎟
à = ⎜ ⎟
⎜ 1 0 1 0 30 ⎟
⎝ 0 1 0 1 60 ⎠
49
En appliquant le pivot de Gauss à cette matrice étendue, on montre que le système a
quatre inconnues et trois contraintes :
⎛ 1 1 0 0 50 ⎞
⎜ 0 −1 1 0 −20 ⎟ ⎛ 1 1 0 0 50 ⎞
à ←→ ⎜ ⎟ ⇐⇒ ⎜ 0 −1 1 0 −20 ⎟
PDG ⎜ 0 0 1 1 40 ⎟ ⎝ 0 0 1 1 40 ⎠
⎝ 0 0 0 0 0 ⎠
Il est donc possible d’exprimer l’ensemble des solutions de ce système ainsi que la
fonction coût à l’aide d’un des quatre paramètres, n’importe lequel.
Par ailleurs, on peut également montrer que la solution optimale (i.e. celle qui mini-
mise le coût de l’opération) est atteinte lorsque l’un de ces quatre paramètres est nul.
À l’aide des opérations du Pivot de Gauss étendu, il est alors possible de parcourir
l’ensemble de ces représentation et de déterminer quelle variable doit être nulle pour ob-
tenir la solution optimale.
Ainsi, on ajoute dans un premier temps une ligne à la matrice Ã, correspondant à la
fonction coût :
⎛ 1 1 0 0 50 ⎞
⎜ 0 −1 1 0 −20 ⎟
à ↝ ⎜ ⎟
⎜ 0 0 1 1 40 ⎟
⎝ 168 148 158 140 C ⎠
Ainsi, en "vidant" les colonnes associées à toutes les variables sauf x12 , on peut en
particulier exprimer l’ensemble des données du problème à l’aide de la variable x12 :
⎛ 1 1 0 0 50 ⎞
⎜ 0 −1 1 0 −20 ⎟
à ←→ ⎜ ⎟
L4 ← L4 − 168L1 ⎜ 0 0 1 1 40 ⎟
⎝ 0 −20 158 140 C − 8400 ⎠
⎛ 1 1 0 0 50 ⎞
⎜ 0 −1 1 0 −20 ⎟
à ←→ ⎜ ⎟
L3 ← L3 − L2 ⎜ 0 1 0 1 60 ⎟
L4 ← L4 − 158L2
⎝ 0 138 0 140 C − 5240 ⎠
● puis C4 :
⎛ 1 1 0 0 50 ⎞
⎜ 0 −1 1 0 −20 ⎟
à ←→ ⎜ ⎟
L4 ← L4 − 140L3 ⎜ 0 1 0 1 60 ⎟
⎝ 0 −2 0 0 C − 13640 ⎠
51
On a alors
L1 ⇒ x11 = 50 − x12
L2 ⇒ x21 = x12 − 20
L3 ⇒ x22 = 60 − x12
L4 ⇒ C = 13640 − 2x12
On voit en particulier ici que ça n’est pas la variable x12 qu’il faut annuler pour obtenir
le coût minimal. Au contraire, pour faire diminuer le coût au maximum, il faut prendre
la valeur la plus grande possible de x12 .
Or le seul frein à l’augmentation de la quantité x12 est donné par l’exigence de positivité
de toutes les variables :
L1 ⇒ x12 ⩽ 50
L2 ⇒ x12 ⩾ 20
L3 ⇒ x12 ⩽ 60
Pour cela, on applique les opérations du pivot à la dernière matrice obtenue, afin de
vider toutes les colonnes sauf celle de x11 , soit, ici, la colonne C2 avec pour pivot le premier
coefficient de la colonne :
⎛ 1 1 0 0 50 ⎞
⎜ 1 0 1 0 30 ⎟
à ←→ ⎜ ⎟
L2 ← L2 + L1 ⎜ −1 0 0 1 10 ⎟
L3 ← L3 − L1
L4 ← L4 + 2L1 ⎝ 2 0 0 0 C − 13540 ⎠
C = 13540 + 2x11
Cmin = 13540
53
atteint pour x11 = 0.
Par ailleurs, la matrice ci-dessus nous donne également les valeurs des différentes
variables associées à cette solution optimale :
x11 = 0
x12 = 50 − x11 = 50
x21 = 30 − x11 = 30
x22 = 10 − x11 = 10
Les profits que l’entreprise peut réaliser pour chaque type de produit sont de
● 400=Cpour chaque unité de produit P1 ,
● 600=Cpour chaque unité de produit P2 .
Les contraintes imposées par le temps disponible dans chaque atelier se traduisent
alors par :
● Atelier 1 : x + 2y ⩽ 20
● Atelier 2 : 2x + y ⩽ 22
● Atelier 3 : x + y ⩽ 12
55
Par ailleurs, le profit réalisé par l’entreprise pour une production de x unités de P1
et y unités de P2 est
P = 400x + 600y
Maximiser
P = 400x + 600y
sous les contraintes
⎧
⎪ x + 2y ⩽ 20
⎪
⎪
⎪
⎪ 2x + y ⩽ 22
(S) ∶ ⎨
⎪
⎪ x + y ⩽ 12
⎪
⎪
⎪
⎩ x, y ⩾ 0
Le système de contraintes (S) peut alors être remplacé par un système d’équations en
introduisant trois variables d’écarts e1 , e2 et e3 positives :
x + 2y ⩽ 20 ⇒ x + 2y + e1 = 20
2x + y ⩽ 22 ⇒ 2x + y + e2 = 22
x + y ⩽ 12 ⇒ x + y + e3 = 12
Il s’agit donc d’un système linéaire de 3 équations à 5 inconnues que l’on peut repré-
senter par la matrice ci-dessous (dans laquelle on ajoute également une ligne représentant
la fonction P à maximiser) :
⎛ 1 2 1 0 0 20 ⎞
⎜ 2 1 0 1 0 22 ⎟
à = ⎜ ⎟
⎜ 1 1 0 0 1 12 ⎟
⎝ 400 600 0 0 0 P ⎠
Par ailleurs, l’ensemble des solutions du système (S) (et donc l’ensemble des données
du problème) peut être représenté à l’aide de
d = 5−3 = 2
57
encore, la solution optimale est atteinte lorsque 2 de ces 5 variables sont nulles.
L1 ⇒ e1 = 20 − x − 2y
L2 ⇒ e2 = 22 − 2x − y
L3 ⇒ e3 = 12 − x − y
et
P = 400x + 600y
L’organisation de production associée à cette matrice est celle consistant alors à pro-
duire 0 unités de P1 et 0 unités de P2 pour un profit de 0=C.
Cela n’est évidement pas la solution optimale, mais c’est une solution possible, qui
permet d’amorcer le processus de recherche.
Les équations du cadre ci-dessus limitent cette augmentation si l’on veut respecter les
contraintes de positivité des variables e1 , e2 et e3 :
L1 ⇒ y ⩽ 10
L2 ⇒ y ⩽ 22
L3 ⇒ y ⩽ 12
La contrainte la plus forte est alors donnée par la ligne L1 portant sur la variable e1 .
⎛ 0.5 1 0.5 0 0 10 ⎞
⎜ 1.5 0 −0.5 1 0 12 ⎟
à ↔ ⎜ ⎟
⎜ 0.5 0 −0.5 0 1 2 ⎟
⎝ 100 0 −300 0 0 P − 6000 ⎠
59
Par ailleurs, il correspond à la solution de (S) obtenue en posant
x = 0 et e1 = 0
pour un profit de
P = 6000=C
L1 ⇒ y = 10 − 0.5x − 0.5e1 ⇒ x ⩽ 20
L2 ⇒ e2 = 12 − 1.5x + 0.5e1 ⇒ x ⩽ 8
⎛ 0 1 1 0 −1 8 ⎞
⎜ 0 0 1 1 −3 6 ⎟
⎜ ⎟
⎜ 1 0 −1 0 2 4 ⎟
⎝ 0 0 −200 0 −200 P − 6400 ⎠
e1 = 0 et e3 = 0
pour un profit de
P = 6400=C
On constate ici que l’on a augmenté le profit par rapport à la solution précédente.
61
D’autre part, les coefficients de e1 et e3 dans P étant tous les deux négatifs, on a
atteint la solution optimale : le profit maximal est
Pmax = 6400
obtenu en posant
e1 = 0 et e3 = 0
Les premières lignes de la dernière matrice donnent alors les valeurs des autres va-
riables :
L1 ⇒ y = 8 − e1 + e3 = 8
L2 ⇒ e2 = 6 − e1 + 3e3 = 6
L1 ⇒ x = 4 + e1 − 2e3 = 4
Par ailleurs, l’égalité e2 = 6 signifie qu’au cours de cette production optimale, 6 des 22
heures disponibles sur l’atelier 2 ne seront pas utilisées.
Par ailleurs, une étude théorique de la notion de programme linéaire basée sur les
outils de l’algèbre linéaire permet de tirer de nombreuses informations supplémentaires
des résultats obtenus à partir de l’application du simplexe, notamment en cas de variation
des contraintes de production (temps disponible et/ou prix de vente) mais également en
cas de revente de l’entreprise.
63