Résoudre des équations algébriques à l'aide de Python

Vaibhav Vaibhav 30 janvier 2023
  1. Résoudre des équations algébriques dans une variable à l’aide de la méthode solve() du package SymPy
  2. Résoudre des équations algébriques à plusieurs variables à l’aide du package SymPy
  3. Résolution d’équations algébriques à deux variables multiples
  4. Résolution d’équations algébriques à trois variables multiples
Résoudre des équations algébriques à l'aide de Python

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}
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Article connexe - Python Math