Section : Les objets du calcul formel
Avant : Les expressions
Après : Les fonctions


Développer et simplifier

En-dehors des règles de la section précédente, il n'y a pas de simplification systématique. Il y a deux raisons à cela. La première est que les simplifications non triviales sont parfois coûteuses en temps, et le choix d'en faire ou non est laissé à l'utilisateur ; la deuxième est qu'il y a en général plusieurs manières de simplifier une même expression, selon l'usage que l'on veut en faire. Les principales commandes pour transformer une expression sont les suivantes :

$ \bullet$
expand : développe une expression en tenant compte uniquement de la distributivité de la multiplication sur l'addition et du développement des puissances entières.
$ \bullet$
normal et ratnormal : d'un bon rapport temps d'exécution-simplification, elles écrivent une fraction rationnelle (rapport de deux polynômes) sous forme de fraction irréductible développée; normal tient compte des nombres algébriques (par exemple comme sqrt(2)) mais pas ratnormal. Les deux ne tiennent pas compte des relations entre fonctions transcendantes (par exemple comme sin et cos).
$ \bullet$
factor : un peu plus lente que les précédentes, elle écrit une fraction sous forme irréductible factorisée.
$ \bullet$
simplify : elle essaie de se ramener à des variables algébriquement indépendantes avant d'appliquer normal. Ceci est plus coûteux en temps et "aveugle" (on ne contrôle pas les récritures intermédiaires). Les simplifications faisant intervenir des extensions algébriques (par exemple des racines carrées) nécessitent parfois deux appels et/ou des hypothèses (assume) pour enlever des valeurs absolues avant d'obtenir la simplification souhaitée.
$ \bullet$
tsimplify essaie de se ramener à des variables algébriquement indépendantes mais sans appliquer normal ensuite.

Dans le menu Math du bandeau supérieur, les 4 sous-menus de récriture contiennent d'autres fonctions, pour des transformations plus ou moins spécialisées.


b:=sqrt(1-a^2)/sqrt(1-a)
ratnormal(b)
normal(b)
tsimplify(b)
simplify(b)
simplify(simplify(b))
assume(a<1)
simplify(b)   
simplify(simplify(b))

La fonction convert permet de passer d'une expression à une autre équivalente, sous un format qui est spécifié par le deuxième argument.


convert(exp(i*x),sincos)
convert(1/(x^4-1),partfrac)
convert(series(sin(x),x=0,6),polynom)
Transformations
simplify simplifier
tsimplify simplifier (moins puissant)
normal forme normale
ratnormal forme normale (moins puissant)
expand développer
factor factoriser
assume rajout d'hypothèses
convert transformer en un format spécifié


Section : Les objets du calcul formel
Avant : Les expressions
Après : Les fonctions

R. De Graeve, B. Parisse, B. Ycart 2006