- À propos des variables symboliques en SymPy
- Créer une variable symbolique avec Symbol
- Créer plusieurs variables avec symbols()
- Comprendre la différence entre variable Python et symbole SymPy
- Construire des expressions avec des symboles
- Créer plusieurs symboles avec une notation abrégée
- Définir des hypothèses sur les symboles
- Remplacer un symbole par une valeur
- Utiliser les symboles dans les calculs algébriques
- À retenir !
1. À propos des variables symboliques en SymPy
La bibliothèque SymPy permet d'effectuer du calcul symbolique avec Python. Contrairement au calcul numérique classique, le calcul symbolique permet de manipuler des lettres comme x, y ou t en tant qu'objets mathématiques.
Pour créer ces objets, SymPy fournit notamment la classe Symbol et la fonction symbols().
Le programme suivant crée un symbole mathématique nommé x et l'affiche.
1 2 3 4 | from sympy import Symbol x = Symbol("x") print(x) |
Sortie :
1 | x |
L'objet x peut maintenant être utilisé pour construire des expressions algébriques sans lui attribuer une valeur numérique.
2. Créer une variable symbolique avec Symbol
La classe Symbol permet de créer un symbole individuel. Le nom du symbole est fourni sous forme de chaîne de caractères.
Le programme suivant crée le symbole x puis affiche son type.
1 2 3 4 5 | from sympy import Symbol x = Symbol("x") print(x) print(type(x)) |
Sortie :
1 2 | x <class 'sympy.core.symbol.Symbol'> |
Nous constatons que x n'est pas une chaîne de caractères. C'est un véritable objet SymPy de type Symbol.
Nous pouvons naturellement choisir un autre nom pour notre symbole.
1 2 3 4 | from sympy import Symbol temperature = Symbol("T") print(temperature) |
Sortie :
1 | T |
Le nom de la variable Python, ici temperature, et le nom mathématique du symbole, ici T, sont donc deux notions différentes.
3. Créer plusieurs variables avec symbols()
Lorsqu'il faut créer plusieurs symboles, la fonction symbols() est généralement plus pratique que plusieurs appels successifs à Symbol().
Le programme suivant crée simultanément trois symboles x, y et z.
1 2 3 4 5 6 | from sympy import symbols x, y, z = symbols("x y z") print(x) print(y) print(z) |
Sortie :
1 2 3 | x y z |
La chaîne "x y z" contient les noms des symboles à créer. La fonction symbols() retourne ici plusieurs objets qui sont affectés respectivement aux variables Python x, y et z.
Nous pouvons vérifier que chacun de ces objets est bien un symbole SymPy.
1 2 3 4 5 | from sympy import symbols x, y = symbols("x y") print(type(x)) print(type(y)) |
Sortie :
1 2 | <class 'sympy.core.symbol.Symbol'> <class 'sympy.core.symbol.Symbol'> |
4. Comprendre la différence entre variable Python et symbole SymPy
Il est important de distinguer une variable Python d'un symbole SymPy. Dans l'instruction x = Symbol("x"), le premier x est un nom utilisé dans le programme Python, tandis que "x" est le nom du symbole mathématique créé par SymPy.
Nous pouvons mettre cette différence en évidence en donnant à la variable Python un nom différent du symbole mathématique.
1 2 3 4 | from sympy import Symbol variable = Symbol("x") print(variable) |
Sortie :
1 | x |
La variable Python s'appelle variable, mais l'objet symbolique qu'elle référence porte le nom x.
Il est toutefois généralement plus lisible d'utiliser le même nom des deux côtés.
1 2 3 4 | from sympy import Symbol x = Symbol("x") print(x) |
Sortie :
1 | x |
Cette écriture facilite la lecture des expressions mathématiques et constitue une pratique courante avec SymPy.
5. Construire des expressions avec des symboles
L'intérêt principal des symboles est de pouvoir construire et manipuler des expressions algébriques. Les opérateurs Python habituels comme +, -, *, / et ** peuvent être utilisés avec les objets SymPy.
Le programme suivant construit l'expression mathématique x² + 3x + 2.
1 2 3 4 5 | from sympy import Symbol x = Symbol("x") expression = x**2 + 3*x + 2 print(expression) |
Sortie :
1 | x**2 + 3*x + 2 |
La variable x reste symbolique : aucune valeur numérique ne lui a été attribuée.
Nous pouvons également construire une expression contenant plusieurs variables symboliques.
1 2 3 4 5 | from sympy import symbols x, y = symbols("x y") expression = x**2 + 2*x*y + y**2 print(expression) |
Sortie :
1 | x**2 + 2*x*y + y**2 |
SymPy conserve ainsi la structure mathématique de l'expression afin de pouvoir ensuite la simplifier, la factoriser, la dériver, l'intégrer ou effectuer d'autres opérations symboliques.
6. Créer plusieurs symboles avec une notation abrégée
La fonction symbols() accepte des notations abrégées permettant de créer rapidement une suite de symboles numérotés.
La notation x0:5 crée les cinq symboles allant de x0 à x4. La borne finale 5 n'est pas incluse.
1 2 3 4 | from sympy import symbols variables = symbols("x0:5") print(variables) |
Sortie :
1 | (x0, x1, x2, x3, x4) |
Cette notation est particulièrement pratique lorsque nous devons créer un grand nombre de variables indexées.
Nous pouvons ensuite parcourir les symboles obtenus avec une boucle.
1 2 3 4 5 6 | from sympy import symbols variables = symbols("x1:6") for variable in variables: print(variable) |
Sortie :
1 2 3 4 5 | x1 x2 x3 x4 x5 |
La notation x1:6 commence ici à x1 et s'arrête avant x6.
7. Définir des hypothèses sur les symboles
Lors de la création d'un symbole, SymPy permet de préciser des hypothèses sur sa nature mathématique. Nous pouvons par exemple indiquer qu'une variable est réelle, positive, entière ou non nulle.
Le programme suivant crée un symbole x supposé positif.
1 2 3 4 5 6 7 | from sympy import Symbol x = Symbol("x", positive=True) print(x) print(x.is_positive) print(x.is_real) |
Sortie :
1 2 3 | x True True |
Une quantité positive étant nécessairement réelle dans le système d'hypothèses de SymPy, x.is_real retourne également True.
La fonction symbols() accepte elle aussi des hypothèses. Le programme suivant crée deux symboles entiers.
1 2 3 4 5 6 | from sympy import symbols n, p = symbols("n p", integer=True) print(n.is_integer) print(p.is_integer) |
Sortie :
1 2 | True True |
Les hypothèses permettent à SymPy de réaliser certaines simplifications ou déductions mathématiques qui ne seraient pas possibles si la nature du symbole était inconnue.
8. Remplacer un symbole par une valeur
Une expression symbolique peut être évaluée pour certaines valeurs grâce à la méthode subs(). Cette méthode effectue une substitution sans transformer définitivement le symbole en variable numérique.
Le programme suivant construit l'expression x² + 2x + 1 puis remplace x par 3.
1 2 3 4 5 6 7 8 9 | from sympy import Symbol x = Symbol("x") expression = x**2 + 2*x + 1 resultat = expression.subs(x, 3) print(expression) print(resultat) |
Sortie :
1 2 | x**2 + 2*x + 1 16 |
L'expression originale reste symbolique. La méthode subs() retourne une nouvelle expression dans laquelle la substitution demandée a été effectuée.
Nous pouvons également remplacer plusieurs symboles en une seule opération.
1 2 3 4 5 6 7 8 | from sympy import symbols x, y = symbols("x y") expression = x**2 + y resultat = expression.subs({x: 3, y: 5}) print(resultat) |
Sortie :
1 | 14 |
9. Utiliser les symboles dans les calculs algébriques
Une fois les variables symboliques créées, elles peuvent être utilisées avec les nombreuses fonctions de calcul algébrique proposées par SymPy. Nous pouvons par exemple développer une expression avec expand().
Le programme suivant développe le produit (x + 1)(x + 2).
1 2 3 4 5 6 7 8 | from sympy import symbols, expand x = symbols("x") expression = (x + 1)*(x + 2) resultat = expand(expression) print(resultat) |
Sortie :
1 | x**2 + 3*x + 2 |
Nous pouvons également utiliser un symbole pour calculer une dérivée avec la fonction diff().
1 2 3 4 5 6 7 8 | from sympy import symbols, diff x = symbols("x") f = x**3 + 2*x**2 - 5*x + 4 derivee = diff(f, x) print(derivee) |
Sortie :
1 | 3*x**2 + 4*x - 5 |
Les objets créés avec Symbol ou symbols() constituent ainsi la base de nombreuses opérations de calcul symbolique avec SymPy : simplification, factorisation, résolution d'équations, dérivation, intégration et bien d'autres.
10. À retenir !
Les fonctions Symbol et symbols() permettent de créer des variables symboliques avec SymPy afin de manipuler des expressions mathématiques sans attribuer immédiatement des valeurs numériques aux variables.
- Symbol("x") permet de créer un symbole individuel nommé x.
- symbols("x y z") permet de créer plusieurs symboles en une seule instruction.
- Un objet Symbol représente une variable mathématique symbolique.
- Une variable Python et le nom d'un symbole SymPy sont deux notions différentes.
- Il est généralement plus lisible d'utiliser le même nom pour la variable Python et le symbole mathématique.
- Les symboles peuvent être utilisés avec les opérateurs +, -, *, / et **.
- symbols("x0:5") permet de créer rapidement une suite de symboles.
- Des hypothèses comme positive=True, real=True ou integer=True peuvent être associées aux symboles.
- La méthode subs() permet de remplacer un symbole par une valeur ou une autre expression.
- Les symboles servent de base aux opérations algébriques, aux dérivées, aux intégrales et à la résolution d'équations avec SymPy.
Le programme suivant rassemble les principales opérations étudiées : création de deux symboles, construction d'une expression, substitution et dérivation.
1 2 3 4 5 6 7 8 | from sympy import symbols, diff x, y = symbols("x y") expression = x**2 + 2*x*y + y**2 print("Expression :", expression) print("Pour x = 2 et y = 3 :", expression.subs({x: 2, y: 3})) print("Dérivée par rapport à x :", diff(expression, x)) |
Sortie :
1 2 3 | Expression : x**2 + 2*x*y + y**2 Pour x = 2 et y = 3 : 25 Dérivée par rapport à x : 2*x + 2*y |
Auteur : Younes Derfoufi
Lieu de travail : CRMEF OUJDA
Site Web : www.tresfacile.net
Chaine YouTube : https://www.youtube.com/user/InformatiquesFacile
Me contacter : https://www.tresfacile.net/me-contacter/


