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 :
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.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
).factor
: un peu plus lente que les précédentes, elle
écrit une fraction sous forme irréductible factorisée.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.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é |