IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ Mathematica

FAQ MathematicaConsultez toutes les FAQ

Nombre d'auteurs : 1, nombre de questions : 30, dernière mise à jour : 16 juin 2021 

 
OuvrirSommaireManipulation d'expressions

L'un des grands avantages des systèmes de CAS est la simplification d'expressions entièrement automatisée, sans risque d'erreur. Bien sûr, on peut leur trouver une utilité digne des châteaux de sable.

 
Sélectionnez
In[1]:= Simplify[45*(45*(x - 45*(Exp[x])))]
Out[1]= 2025 (-45 E^x + x)

Certaines opérations donnent des résultats pas forcément très heureux à voir, comme la dérivation d'une fonction juste intégrée :

 
Sélectionnez
In[1]:= D[Integrate[x/(x^3 + 1), x], x]
Out[1]= -(1/(3 (1 + x))) + (-1 + 2 x)/(6 (1 - x + x^2)) + 2/(
 3 (1 + 1/3 (-1 + 2 x)^2))

Avec un peu de magie, on peut réduire cette expression à une forme beaucoup plus lisible :

 
Sélectionnez
In[1]:= Simplify@D[Integrate[x/(x^3 + 1), x], x]
Out[1]= x/(1 + x^3)

Cette fonction tient aussi compte des identités diverses et non moins variées définitions parcourant les multiples branches des mathématiques :

 
Sélectionnez
In[1]:= Simplify[Sinh[x]^2 - Cosh[x]^2]
Out[1]= -1
In[2]:= Simplify[Sinh[x]^2 + Cosh[x]^2]
Out[2]= Cosh[2 x]

Cependant, cette fonction ne peut pas simplifier des expressions utilisant des fonctions spéciales (comme la fonction gamma, généralisation de la factorielle) :

 
Sélectionnez
In[1]:= Simplify[x Gamma[x]]
Out[1]= x Gamma[x]

Pour cela, on doit utiliser FullSimplify, qui est potentiellement beaucoup plus lente vu le nombre de transformations supportées :

 
Sélectionnez
In[2]:= FullSimplify[x Gamma[x]]
Out[2]= Gamma[1 + x]
Créé le 29 juin 2012  par Thibaut Cuvelier

Certaines simplifications ne peuvent se faire que sous certaines hypothèses. L'exemple le plus fréquent est la racine carrée d'un carré : il s'agit bien sûr de la valeur absolue pour des réels.

 
Sélectionnez
In[1]:= Simplify[Sqrt[x^2], Element[x, Reals]]
Out[1]= Abs[x]

Si le nombre est positif, on peut encore simplifier plus avant, les inégalités n'étant définies que sur les réels :

 
Sélectionnez
In[1]:= Simplify[Sqrt[x^2], x > 0]
Out[1]= x

In[2]:= Assuming[x > 0, Simplify[Sqrt[x^2]]]
Out[2]= x

Ainsi, on peut également profiter de quelques théorèmes, comme le petit théorème de Fermat :

 
Sélectionnez
In[1]:= Simplify[Mod[a^p, p], Element[a, Integers] && Element[p, Primes]]
Out[1]= Mod[a, p]
Créé le 29 juin 2012  par Thibaut Cuvelier

Notamment, pour vérifier le développement d'un produit remarquable, on peut utiliser

 
Sélectionnez
In[1]:= Expand[(a + b)^2]
Out[1]= a^2 + 2 a b + b^2]

In[2]:= Expand[(a + b)^3]
Out[2]= a^3 + 3 a^2 b + 3 a b^2 + b^3

Par contre, s'il faut distribuer, il vaut mieux utiliser Distribute :

 
Sélectionnez
In[1]:= Expand[(a + b).(x + y)]
Out[1]= (a + b).(x + y)

In[2]:= Distribute[(a + b).(x + y)]
Out[2]= a.x + a.y + b.x + b.y

De même, si on veut développer des sous-expressions, il faut le préciser avec ExpandAll :

 
Sélectionnez
In[1]:= Expand[Exp[(1 + x)^2]]
Out[1]=E^(1 + x)^2

In[2]:= ExpandAll[Exp[(1 + x)^2]]
Out[2]= E^(1 + 2 x + x^2)

En général, l'inverse de cette fonction est Simplify :

 
Sélectionnez
In[1]:= Simplify@ExpandAll[Exp[(1 + x)^2]]
Out[1]= E^(1 + x)^2
Créé le 29 juin 2012  par Thibaut Cuvelier

Copyright © 2011 Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.