assume ou supposons permet de faire des hypothèses sur
une variable.
assume ou supposons a comme argument un nom de variable suivi d’une
égalité ou d’une inégalité représentant l’hypothèse faite ou bien
un nom de variable suivi d’une virgule et de son type.
On peut mettre plusieurs hypothèses à condition de les relier par and
ou or selon ce que l’on veut faire ! Toutefois, il faut utiliser
additionally comme deuxième argument de assume pour spécifier
le type de la variable et une plage de valeurs pour cette variable.
assume renvoie le nom de la variable sur laquelle on a fait les
hypothèses ou le type de cette variable.
Attention Si on fait une autre hypothèse avec assume, l’ancienne
hypothèse est effacée : si vous voulez rajoutez une nouvelle hypothèse il
faut utiliser la commande additionally ou mettre additionally
comme deuxième argument de assume.
Remarques
Cela permet de faire de la géométrie interactive tout en faisant du calcul
formel. Par exemple, si on met en géométrie :
assume(a=2);assume(b=3); A:=point(a+i*b), la figure sera construite avec
les valeurs données aux variables mais les calculs seront faits avec les
variables symboliques a et b car pour toutes les sorties graphiques
et seulement sur celles-ci la variable est évaluée.
On tape
Ou on tape
Ou on tape
Ou on tape
Ou on tape directement :
On obtient :
Lorsque l’on fait varier a la commande assume(a=2) se transforme en
supposons(a=[2.1,-5.0,5.0,0.1]) et les niveaux qui suivent sont
évalués. Si il n’y a rien sur le niveau suivant on aura undef en
réponse.
Cela signifie que a peut varier entre -5 et 5 avec un pas
de 0.1 et que a vaut 2.1.
Si sur les deux niveaux suivants on a
evalf(a+2) et evalf(a+3)
les réponses évolueront selon la position du curseur (curseur en 2.1,
on aura 4.1 et 5.1 puis curseur en 2.2, on aura 4.2 et
5.2). Mais si sur les deux niveaux suivants on a a+2 et a+3,
les réponses seront toujours a+2 et a+3.
On tape pour supposer que la variable formelle a est positive :
On obtient :
On tape :
On obtient :
cela signifie que a est une variable réelle appartenant à
[0;+∞ et que 0 est exclu (on a le domaine, l’intervalle et les valeurs
exclues).
On tape pour supposer que la variable formelle a est dans
[2;4[∪ ]6;∞[ :
On obtient :
On tape :
On obtient :
cela signifie que a est une variable réelle appartenant à
[2;4]∪ [6;∞[ et que 4 et 6 sont exclus (on a le domaine, l’intervalle
et les valeurs exclues).
On tape :
On obtient :
On tape pour dire que b est un entier :
On obtient :
On tape :
On obtient :
On tape pour dire que b est un entier supérieur strictement à 5 :
On obtient :
puis
On tape :
On obtient :
Remarque
Lorsque assume a comme argument une seule égalité et que la commande
est tapée dans une ligne d’entrée d’un écran de géométrie, cela met
un petit curseur en haut et à droite de cet écran. Le nom du paramètre
est noté à droite du curseur. Ce curseur permet de changer la valeur du
paramètre et cette valeur sera notée à gauche du curseur.
On tape par exemple :
assume(a=[2,-10,10,0.1])
Cela signifie que tous les calculs seront faits avec a quelconque, à
condition que les points aient des coordonnèes exactes, mais que la figure
sera tracée avec a=2 et que l’on pourra faire varier cette figure avec
le petit curseur en fonction de a de -10 à +10, avec un pas
de 0.1. Si on met assume(a=[2,-5,5), a varie de -5 à
+5 avec un pas de (5-(-5))/100), et si on met assume(a=2),
a varie de WX- à WX+ et le pas est ((WX+)-(WX-))/100.
Attention En géométrie il faut donc travailler avec des coordonnèes
exactes par exemple :
A:=point(i);assume(b:=2); B:=point(b);
puis on tape :
longueur(A,B);
On obtient :
sqrt((-b)^
2+1)
Mais :
A:=point(0.0+i);assume(b:=2); B:=point(b);
puis on tape :
longueur(A,B);
On obtient la valeur approchée de √(1+4) :
2.2360679775
Attention Un paramètre défini par assume n’est évalué
que pour les sorties graphiques, sinon il faut utiliser evalf.
Exemple : On tape :
dr(m):=ifte(m==2,droite(x=1),droite(x+(m-2)*y-1))
puis dans un niveau de géométrie, on tape :
supposons(a=[2.0,-5,5,0.1])
dr(evalf(a))
qui renvoie droite(x=2) lorsque a:=2 et droite(y=(-5*x+5))
lorsque a:=2.2 alors que
dr(a) renvoie droite(y=(-1/(a-2)*x+1/(a-2))) quelque soit a et
il y aura donc une erreur pour a=2....
Attention à la différence entre assume et element
Si b:=element(0..3,1,0.1) est tapé dans une ligne d’entrée d’un
écran de géométrie, cela met aussi un petit curseur en haut et à droite
de cet écran avec b=1 et on pourra faire
varier b avec le petit curseur de 0 à 3 avec un pas
de 0.1. Mais la variable b n’est pas formelle !
On tape
On obtient :