Résoudre des équations algébriques à l'aide de Python
-
Résoudre des équations algébriques dans une variable à l’aide de la méthode
solve()
du packageSymPy
-
Résoudre des équations algébriques à plusieurs variables à l’aide du package
SymPy
- Résolution d’équations algébriques à deux variables multiples
- Résolution d’équations algébriques à trois variables multiples
Python possède une bibliothèque pour les mathématiques symboliques, à savoir SymPy
. Cette bibliothèque contient des utilitaires pour résoudre des problèmes et des concepts mathématiques complexes tels que les matrices, le calcul, la géométrie, les mathématiques discrètes, les intégrales, la cryptographie, l’algèbre, etc.
Nous pouvons utiliser cette bibliothèque pour résoudre des équations algébriques. Cet article montrera comment utiliser SymPy
pour résoudre des équations algébriques en Python.
Voici quelques moyens par lesquels nous pouvons installer le module SymPy
sur nos machines.
Utilisation du gestionnaire de paquets pip
pour installer Sympy
Utilisez la commande suivante pour installer le package SymPy
en utilisant pip
.
pip install sympy
ou
pip3 install sympy
Utiliser Anaconda pour installer Sympy
Anaconda est une distribution Python gratuite qui inclut par défaut la bibliothèque SymPy
dans son environnement. On peut mettre à jour la version existante en utilisant la commande suivante.
conda update sympy
Pour obtenir un aperçu détaillé des méthodes décrites ci-dessus et de quelques autres méthodes disponibles pour installer la bibliothèque SymPy
, reportez-vous à la documentation officielle ici.
Résoudre des équations algébriques dans une variable à l’aide de la méthode solve()
du package SymPy
La bibliothèque SymPy
possède une fonction solve()
qui permet de résoudre des équations algébriques. Cette fonction accepte les arguments principaux suivants.
f
: Une équation algébrique.symbols
: Les variables pour lesquelles l’équation doit être résolue.dict
: un indicateur booléen pour retourner une liste de mappages de solutions.set
: un indicateur booléen pour une liste de symboles et un ensemble de tuples de solutions.check
: Un drapeau booléen pour tester les solutions obtenues dans l’expression algébrique.minimal
: un indicateur booléen pour un test rapide et minimal de la solution.
Maintenant que nous avons terminé avec une brève théorie, apprenons à utiliser cette méthode solve()
pour résoudre des équations algébriques à l’aide de quelques exemples. Reportez-vous au code suivant pour la même chose.
from sympy.solvers import solve
from sympy import Symbol
x = Symbol("x")
print(solve(x ** 2 - 1, x))
print(solve(x ** 3 + x ** 2 + x + 1, x))
print(solve(x ** 3 - 0 * x ** 2 + 4 * x - 5, x))
Production :
[-1, 1]
[-1, -i, i]
[1, -1/2 - √19i / 2, -1/2 + √19i / 2]
Résoudre des équations algébriques à plusieurs variables à l’aide du package SymPy
Pour résoudre des équations algébriques à plusieurs variables, nous avons besoin de plusieurs équations.
Par exemple, nous avons besoin d’au moins deux de ces équations si nous devons résoudre des équations algébriques à deux variables. Pour résoudre des équations algébriques à trois variables, nous avons besoin d’au moins trois de ces équations.
Et pour résoudre de telles équations, nous avons besoin de trois utilitaires, à savoir symbols
, Eq
, solve
, du module SymPy
.
La fonction symbols
transforme des chaînes de variables en instances de la classe Symbol
.
La classe Eq
représente une relation égale entre deux objets, en particulier des expressions. Par exemple, si nous avons une équation x + y = 3
, alors x + y
et 3
sont les deux objets ou expressions. Pour x + y - 5 = x + 6
, x + y - 5
et x + 6
sont les deux objets.
Et, la méthode solve()
utilise les deux ci-dessus pour résoudre les équations.
Voyons comment nous pouvons utiliser ces utilitaires pour résoudre des équations algébriques à deux et trois variables à l’aide de quelques exemples pertinents.
Résolution d’équations algébriques à deux variables multiples
Pour comprendre comment résoudre des équations algébriques à deux valeurs en utilisant les utilitaires discutés ci-dessus, nous considérerons les deux exemples suivants.
Exemple 1:
x + y = 5
x - y = 5
Exemple 2 :
2 * x + 4 * y = 10
4 * x + 2 * y = 30
Reportez-vous au code Python suivant pour le premier exemple.
from sympy import symbols, Eq, solve
x, y = symbols("x y")
equation_1 = Eq((x + y), 5)
equation_2 = Eq((x - y), 5)
print("Equation 1:", equation_1)
print("Equation 2:", equation_2)
solution = solve((equation_1, equation_2), (x, y))
print("Solution:", solution)
Production :
Equation 1: Eq(x + y, 5)
Equation 2: Eq(x - y, 5)
Solution: {x: 5, y: 0}
Reportez-vous au code Python suivant pour le deuxième exemple.
from sympy import symbols, Eq, solve
x, y = symbols("x y")
equation_1 = Eq((2 * x + 4 * y), 10)
equation_2 = Eq((4 * x + 2 * y), 30)
print("Equation 1:", equation_1)
print("Equation 2:", equation_2)
solution = solve((equation_1, equation_2), (x, y))
print("Solution:", solution)
Production :
Equation 1: Eq(2*x + 4*y, 10)
Equation 2: Eq(4*x + 2*y, 30)
Solution: {x: 25/3, y: -5/3}
Résolution d’équations algébriques à trois variables multiples
Pour comprendre comment résoudre des équations algébriques à trois valeurs en utilisant les utilitaires discutés ci-dessus, nous considérerons les deux exemples suivants.
Exemple 1:
x + y + z = 5
x - y + z = 5
x + y - z = 5
Exemple 2 :
2 * x - 4 * y + 6 * z = 10
4 * x + 2 * y + 6 * z = 30
4 * x + 2 * y - 10 * z = 50
Reportez-vous au code Python suivant pour le premier exemple.
from sympy import symbols, Eq, solve
x, y, z = symbols("x y z")
equation_1 = Eq((x + y + z), 5)
equation_2 = Eq((x - y + z), 5)
equation_3 = Eq((x + y - z), 5)
print("Equation 1:", equation_1)
print("Equation 2:", equation_2)
print("Equation 3:", equation_3)
solution = solve((equation_1, equation_2, equation_3), (x, y, z))
print("Solution:", solution)
Production :
Equation 1: Eq(x + y + z, 5)
Equation 2: Eq(x - y + z, 5)
Equation 3: Eq(x + y - z, 5)
Solution: {x: 5, z: 0, y: 0}
Reportez-vous au code Python suivant pour le deuxième exemple.
from sympy import symbols, Eq, solve
x, y, z = symbols("x y z")
equation_1 = Eq((2 * x - 4 * y + 6 * z), 10)
equation_2 = Eq((4 * x + 2 * y + 6 * z), 30)
equation_3 = Eq((4 * x + 2 * y - 10 * z), 50)
print("Equation 1:", equation_1)
print("Equation 2:", equation_2)
print("Equation 3:", equation_3)
solution = solve((equation_1, equation_2, equation_3), (x, y, z))
print("Solution:", solution)
Production :
Equation 1: Eq(2*x - 4*y + 6*z, 10)
Equation 2: Eq(4*x + 2*y + 6*z, 30)
Equation 3: Eq(4*x + 2*y - 10*z, 50)
Solution: {x: 37/4, z: -5/4, y: 1/4}