|
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.