supposons

Bugs

Modérateur : xcasadmin

alb
Messages : 1331
Inscription : ven. août 28, 2009 3:34 pm

supposons

Message par alb » mar. sept. 14, 2010 5:54 pm

C'est peut-être moi qui bugue ce soir mais il me semble que (0.8.6 sous linux):

Code : Tout sélectionner

supposons(a>=1);
E:=sqrt(a-sqrt(2a-1))-sqrt(a+sqrt(2a-1));
simplify(E^2);
devrait renvoyer en fin de séquence 2.
Or tout se passe comme si supposons(a>=1) était remplacé par supposons(a<=1) puisque on obtient 4a-2. Il n'est pas impossible que je me trompe.
Je voulais montrer aux élèves que sqrt(a-sqrt(2a-1))-sqrt(a+sqrt(2a-1)) est égal à -sqrt(2) pour a>=1.

parisse
Messages : 5894
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: supposons

Message par parisse » mar. sept. 14, 2010 6:22 pm

en effet, il y a bien un problème, certainement une non prise en compte de l'hypothèse sur a lorsque xcas calcule l'extension algébrique commune. Je ne sais pas si je pourrai corriger, je verrai ça en fin de semaine. En attendant vous pouvez faire comme ça:
E:=sqrt(a-sqrt(2a-1))-sqrt(a+sqrt(2a-1));
a:=x^2+1; (ça permet d'éviter le assume)
simplify(simplify(E));
(on est obligé de faire 2 fois simplify à cause de la simplification qui se produit dans l'extension algébrique commune et permet de "réduire").
Il est toujours prudent de faire une vérification lorsqu'il y a des simplifications avec des extensions algébriques à paramètres, en faisant plot(E,a=0..3) par exemple.

alb
Messages : 1331
Inscription : ven. août 28, 2009 3:34 pm

Re: supposons

Message par alb » mar. sept. 14, 2010 7:55 pm

Merci pour l'idée du changement de variable et de la conjecture graphique, j'étais parti sur des vérifications du type:
simplify(subst(E,a=??))
A ce sujet que dire à des élèves constatant par exemple que si ??=12/5 ou ??=12/11 alors on obtient -sqrt(2) alors que si ??=12/7 on obtient (-(sqrt(3510717218)))/41897

parisse
Messages : 5894
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: supposons

Message par parisse » mer. sept. 15, 2010 5:38 am

C'est parce qu'il y a une limite à la recherche de simplification de racine carrée d'entiers, pour éviter de passer trop de temps à factoriser un entier, ça doit être 2^32 si je ne m'abuse. Je peux bien sur augmenter la limite, mais le problème apparaitra plus tard.

parisse
Messages : 5894
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: supposons

Message par parisse » jeu. sept. 16, 2010 5:47 pm

Bon, j'ai regardé le problème du supposons, et il n'est pas possible de corriger ça pour le moment: c'est en fait un choix de branche pour une racine d'un polynôme, le choix est fait correctement quand il n'y a pas de paramètres en faisant une évaluation numérique, mais avec des paramètres, ce n'est pas possible pour des raisons à la fois d'implémentation (ça nécessiterait d'assez gros changements pour accéder à l'hypothèse sur le paramètre à l'endroit du code où le choix de branche est fait) mais aussi théoriques (l'hypothèse éventuelle ne permet pas toujours de choisir la bonne branche, il peut y avoir un changement de branche dans le domaine, par exemple ici si on supposait a>=0).

Répondre