Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Résoudre un système d’équations

Après cette leçon: Je peux résoudre un petit système par élimination et dire quand il n’a pas de solution unique.

Leçon de 60 min2 commandesLab JupyterLab de science des données : pandas, Matplotlib et scikit-learn dans le navigateur

Comment résoudre un système d’équations ?

Un système d’équations linéaires cherche des nombres inconnus qui vérifient plusieurs égalités à la fois. Vous saurez le résoudre par élimination et dire quand il n’a aucune solution ou en a une infinité.

À la boulangerie, 2 cafés et 1 viennoiserie coûtent 5 €, puis 1 café et 3 viennoiseries 10 €. Quel est le prix de chaque article ?

À la fin de cette leçon

Remarque

Je peux résoudre un petit système par élimination et dire quand il n’a pas de solution unique.

Mots clés

MotCe que ça veut dire
Systèmeplusieurs égalités qui doivent être vraies ensemble
Éliminationretirer une inconnue en combinant deux égalités
Pivotle nombre qui sert à éliminer dans une colonne
Matrice singulièreune matrice dont le système n’a pas de solution unique
Déterminantun nombre qui vaut 0 pour une matrice singulière

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Un système s’écrit avec une matrice

Appelons x le prix d’un café et y celui d’une viennoiserie. Les deux commandes donnent 2x + y = 5 et x + 3y = 10.

Les coefficients forment la matrice [[2, 1], [1, 3]], les inconnues le vecteur (x, y) et les totaux le vecteur (5, 10). Résoudre le système, c’est trouver le vecteur qui donne (5, 10).

Exemple travaillé : les deux commandes

CommandeCafésViennoiseriesTotal en euros
1215
21310

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

L’élimination fait disparaître une inconnue

On double la commande 2 : 2 cafés et 6 viennoiseries pour 20 €. On retire la commande 1 : il reste 5 viennoiseries pour 15 €, donc 3 € pièce.

Le café coûte alors (5 − 3) divisé par 2, soit 1 €. Cette méthode, qui retire une inconnue à chaque étape, s’appelle l’élimination.

L’élimination en Python

Code: python
# 2 cafés + 1 viennoiserie = 5 euros ; 1 café + 3 viennoiseries = 10 euros.
ligne1 = [2, 1, 5]
ligne2 = [1, 3, 10]
# On double la ligne 2, puis on retire la ligne 1 : la colonne des cafés disparaît.
double = [2 * ligne2[0], 2 * ligne2[1], 2 * ligne2[2]]
reste = [double[0] - ligne1[0], double[1] - ligne1[1], double[2] - ligne1[2]]
viennoiserie = reste[2] / reste[1]
cafe = (ligne1[2] - ligne1[1] * viennoiserie) / ligne1[0]
print("une viennoiserie :", viennoiserie, "euros")
print("un café :", cafe, "euros")
# Remplacez 10 par 11 dans ligne2, puis relancez.
# Les deux prix changent-ils ?

Exemple travaillé : l’élimination pas à pas

ÉtapeÉgalité obtenue
Départ2x + y = 5 et x + 3y = 10
Doubler la seconde2x + 6y = 20
La retrancher de la première5y = 15
Diviser par 5y = 3
Remonter dans la première2x + 3 = 5, donc x = 1

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Résoudre le système avec NumPy

Commande
docker exec jupyter python3 -c "import numpy as np; print(np.linalg.solve(np.array([[2, 1], [1, 3]]), np.array([5, 10])))"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Parfois aucune solution, parfois une infinité

Prenons x + 2y = 3 et 2x + 4y = 6. La seconde égalité est le double de la première : elles disent la même chose, donc il y a une infinité de solutions.

Avec 2x + 4y = 7 à la place, les deux égalités se contredisent : aucune solution. Dans les deux cas la matrice est dite singulière.

Exemple travaillé : le déterminant de deux matrices

MatriceCalcul : a × d − b × cDéterminantSolution unique ?
[[2, 1], [1, 3]]2 × 3 − 1 × 15oui
[[1, 2], [2, 4]]1 × 4 − 2 × 20non

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Le déterminant de deux matrices

Commande
docker exec jupyter python3 -c "import numpy as np; print(round(np.linalg.det(np.array([[1, 2], [2, 4]])), 3), round(np.linalg.det(np.array([[2, 1], [1, 3]])), 3))"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Une erreur fréquente

Attention

Beaucoup pensent qu’un système a toujours exactement une solution. C’est vrai seulement si le déterminant n’est pas nul. S’il vaut 0, les égalités sont redondantes ou contradictoires : aucune solution, ou une infinité.

Pour aller plus loin

Dans un carnet, résolvez avec np.linalg.solve un système de trois équations que vous inventez, puis vérifiez en multipliant la matrice par la solution.

En apprentissage automatique, ajuster une droite à des points revient à résoudre un système de ce genre.

À propos de ce labo et de sa source: Lab JupyterLab de science des données : pandas, Matplotlib et scikit-learn dans le navigateur

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.