
|
| auteur : Thibaut Cuvelier |
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.
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 :
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 :
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 :
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) :
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 :
In[2]:= FullSimplify[x Gamma[x]]
Out[2]= Gamma[1 + x]
|
|
|
| auteur : 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.
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 :
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 :
In[1]:= Simplify[Mod[a^p, p], Element[a, Integers] && Element[p, Primes]]
Out[1]= Mod[a, p]
|
|
|
| auteur : Thibaut Cuvelier |
Notamment, pour vérifier le développement d'un produit remarquable, on peut utiliser
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 :
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 :
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 :
In[1]:= Simplify@ExpandAll[Exp[(1 + x)^2]]
Out[1]= E^(1 + x)^2
|
|
Consultez les autres F.A.Q.


Copyright © 2011 Thibaut Cuvelier.
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.