Développer une expression avec expand() en SymPy Python

1. À propos du développement d'expressions avec SymPy

La bibliothèque SymPy permet de manipuler des expressions algébriques symboliques. Une expression peut être écrite sous une forme factorisée, par exemple (x + 1)(x + 2), ou sous une forme développée, par exemple x² + 3x + 2.

La fonction expand() permet de développer une expression en distribuant les produits, en développant certaines puissances et en appliquant différentes règles algébriques.

Le programme suivant présente un premier exemple de développement.

Sortie :

La fonction expand() applique la distributivité et transforme l'expression factorisée en une expression polynomiale développée.

2. Développer une expression avec expand()

La syntaxe de base consiste à transmettre une expression SymPy à la fonction expand(). La fonction retourne une nouvelle expression développée sans modifier l'expression originale.

Le programme suivant développe le produit 3(x + 2).

Sortie :

Le facteur 3 est distribué sur les deux termes de la parenthèse.

Nous pouvons également développer un produit contenant deux expressions plus générales.

Sortie :

SymPy effectue automatiquement les multiplications puis regroupe les termes semblables.

3. Développer un produit de plusieurs facteurs

La fonction expand() peut développer une expression contenant plusieurs facteurs. SymPy distribue successivement les produits jusqu'à obtenir la forme développée.

Le programme suivant développe un produit de trois facteurs.

Sortie :

SymPy effectue l'ensemble des distributions nécessaires et retourne directement le polynôme développé.

Le développement fonctionne également lorsque certains facteurs contiennent des coefficients.

Sortie :

4. Développer les puissances d'une somme

La fonction expand() permet également de développer les puissances d'une somme. Elle peut donc être utilisée pour retrouver automatiquement les identités remarquables.

Le programme suivant développe (x + 1)².

Sortie :

Nous retrouvons l'identité remarquable (a + b)² = a² + 2ab + b².

SymPy peut également développer des puissances plus élevées.

Sortie :

La fonction expand() évite ainsi d'effectuer manuellement les nombreux produits nécessaires au développement des puissances élevées.

5. Développer une expression à plusieurs variables

La fonction expand() n'est pas limitée aux expressions contenant une seule variable. Elle peut développer des expressions comportant plusieurs symboles.

Le programme suivant développe le carré de la somme x + y.

Sortie :

SymPy conserve correctement les produits entre les différentes variables.

Nous pouvons également développer une expression contenant trois symboles.

Sortie :

Cette possibilité est particulièrement utile pour les polynômes à plusieurs variables et les calculs algébriques symboliques.

6. Développer seulement certaines parties d'une expression

La fonction expand() possède plusieurs options permettant de contrôler les types de développements effectués. Parmi elles, les options mul et power_base peuvent être utilisées pour agir plus précisément sur les produits et les puissances.

L'option mul=True demande le développement des multiplications. Il s'agit d'un comportement activé par défaut dans expand().

Sortie :

À l'inverse, nous pouvons désactiver le développement des produits avec mul=False.

Sortie :

Ces options deviennent particulièrement utiles dans des expressions complexes lorsque nous souhaitons contrôler précisément les transformations réalisées par SymPy.

7. Développer les fonctions trigonométriques et complexes

La fonction expand() possède également des options permettant de développer certains types particuliers d'expressions. Pour les expressions trigonométriques, nous pouvons utiliser l'option trig=True.

Le programme suivant développe sin(x + y) à l'aide des formules d'addition trigonométriques.

Sortie :

SymPy applique ici la formule sin(x + y) = sin(x)cos(y) + cos(x)sin(y).

L'option complex=True permet quant à elle de développer une expression en faisant apparaître ses parties réelle et imaginaire.

Sortie :

SymPy représente alors le symbole complexe z sous la forme re(z) + I*im(z).

8. Utiliser expand() avec subs() et simplify()

La fonction expand() peut être combinée avec d'autres outils de SymPy, notamment subs() pour effectuer des substitutions et simplify() pour simplifier une expression.

Le programme suivant développe d'abord une expression puis remplace x par 2.

Sortie :

Nous pouvons ainsi transformer une expression symbolique puis l'évaluer pour une valeur particulière.

Le programme suivant utilise successivement expand() et simplify().

Sortie :

Il faut toutefois conserver à l'esprit que l'expression originale n'est pas définie pour x = 1, même si la forme simplifiée x + 1 l'est.

9. Comparer expand() avec factor()

Les fonctions expand() et factor() effectuent généralement des transformations opposées. expand() développe les produits et les puissances, tandis que factor() cherche à écrire une expression sous une forme factorisée.

Le programme suivant développe une expression puis la factorise de nouveau.

Sortie :

La forme développée est souvent pratique pour identifier les coefficients d'un polynôme, tandis que la forme factorisée peut faciliter l'étude des racines et des facteurs.

Le programme suivant montre le même principe avec un polynôme possédant trois facteurs.

Sortie :

Le choix entre expand() et factor() dépend donc de la forme de l'expression la plus utile pour le calcul que nous souhaitons effectuer.

10. À retenir !

La fonction expand() de SymPy permet de transformer une expression factorisée ou compacte en une forme développée. Elle constitue un outil fondamental pour manipuler les polynômes et de nombreuses autres expressions symboliques.

  • expand(expression) développe une expression symbolique.
  • expand() distribue les produits sur les sommes.
  • La fonction permet de développer des produits comportant plusieurs facteurs.
  • Elle permet de développer les puissances d'une somme comme (x + y)**n.
  • Elle fonctionne avec les expressions contenant plusieurs variables.
  • L'option mul permet de contrôler le développement des multiplications.
  • L'option trig=True permet de développer certaines expressions trigonométriques.
  • L'option complex=True permet de développer une expression en termes de parties réelle et imaginaire.
  • expand() peut être combinée avec subs(), simplify() et d'autres fonctions SymPy.
  • factor() effectue généralement l'opération inverse en recherchant une forme factorisée.

Le programme suivant rassemble les principales utilisations de expand() sur une expression algébrique et une expression trigonométrique.

Sortie :

 




 


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/


Leave a Reply

Your email address will not be published. Required fields are marked *