Simplifications autour des racines carrées

Utilisation de Xcas

Modérateur : xcasadmin

dlefur
Messages : 60
Inscription : dim. mai 04, 2008 1:58 pm
Localisation : São Paulo, Brésil
Contact :

Simplifications autour des racines carrées

Message par dlefur » jeu. mai 29, 2008 10:39 pm

Bonjour,

Voici un exemple de session :

A:=point(0,0) ;
B:=point(1,0) ;
C:=point(1,2) ;
D:=point(0,2) ;
polygone(A,B,C,D) ;
H:=point(0.5,0) ;
t:=element(0 .. 2,1.02) ;
M:=point(0.5,t) ;
segment(D,M),segment(C,M),segment(H,M) ;
f:= (H,D,C,t)->evalf(longueur(H,point(0.5,t))+longueur(D,point(0.5,t))+longueur(point(0.5,t),C)) ;
g:=plotfunc(f(H,D,C,x),x) ;
normal(f(H,D,C,x)) ;

Comme dernier résultat, j'obtiens :

abs(x)+2*exp(0.5*ln(x^2-4.0*x+4.25))

Pas de sqrt, alors que dans votre fichier http://www-fourier.ujf-grenoble.fr/~par ... c/bac3.xws similaire, les racines apparaissent.

Par ailleurs, dans la configuration du cas, il y a un sqrt (coché chez moi). J'ai regardé dans la doc mais je n'ai pas trouvé sa signification.

D'avance merci.

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

Message par parisse » ven. mai 30, 2008 6:38 am

Pour avoir des sqrt, il faut tout faire en mode exact. Ce qui donne

Code : Tout sélectionner

A:=point(0,0) ;
B:=point(1,0) ;
C:=point(1,2) ;
D:=point(0,2) ;
polygone(A,B,C,D) ;
H:=point(1/2,0) ;
assume(t=[1.02,0,2,0.02])
M:=point(1/2,t) ;
segment(D,M),segment(C,M),segment(H,M) ;
f:=(H,D,C,t)->longueur(H,point(1/2,t))+longueur(D,point(1/2,t))+longueur(point(1/2,t),C));
g:=plotfunc(f(H,D,C,x),x) ;
normal(f(H,D,C,x)) ;
et ca renvoie abs(x)+sqrt(4*x^2-16*x+17)
Ca vient peut-etre de modifs du noyau de calcul formel depuis l'an dernier. Il faudra qu'on revise nos sessions du bac 2007. J'ai d'ailleurs 16 corriges des sujets 2008 mais je crois qu'il faut attendre un peu avant de pouvoir les rendre publics:-)
Pour le sqrt dans la configuration du cas: ca permet de forcer xcas a factoriser les polynomes du second degre, meme s'il faut introduire des racines carrees. Si sqrt n'est pas coche, par exemple factor(x^2-5x+1) reste tel quel car il est irreductible sur le corps de ses coefficients (Q).

dlefur
Messages : 60
Inscription : dim. mai 04, 2008 1:58 pm
Localisation : São Paulo, Brésil
Contact :

Message par dlefur » ven. mai 30, 2008 9:50 am

J'ai essayé ce nouveau code et je me retrouve avec le même résultat ... :oops:

Sinon, dans votre exemple bac3.xws, le point M est directement utilisé dans la définition de la fonction alors que que dans mon cas, je dois remettre à chaque fois point(1/2,t).

Décidément, il y a plein de trucs que je ne maîtrise pas :cry: :cry:

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

Message par parisse » ven. mai 30, 2008 12:22 pm

dlefur a écrit :J'ai essayé ce nouveau code et je me retrouve avec le même résultat ... :oops:

Sinon, dans votre exemple bac3.xws, le point M est directement utilisé dans la définition de la fonction alors que que dans mon cas, je dois remettre à chaque fois point(1/2,t).

Décidément, il y a plein de trucs que je ne maîtrise pas :cry: :cry:
Le probleme vient surement de la definition de la fonction f. C'est assez subtil, il faut bien comprendre comment une expression est evaluee. Il vaut mieux travailler avec des expressions et utiliser substituer si on doit remplacer t par une valeur. Ici ca donne a la fin

Code : Tout sélectionner

f:=longueur(H,M)+longueur(D,M)+longueur(M,C);
g:=plotfunc(f,t) ;
normal(f) ;
Sinon avec des fonctions il faudrait definir f avec unapply
f:=unapply(longueur(H,M)+longueur(D,M)+longueur(M,C),H,D,C,t);
la raison c'est que le membre de droite d'une affectation n'est pas evalue.
Dites-moi si ca marche mieux comme ca. Sinon, il y a peut-etre un probleme de configuration. Je n'ai pas le temps de reviser les sessions de bac 2007 pour l'instant, peut-etre d'ici 2 semaines.

dlefur
Messages : 60
Inscription : dim. mai 04, 2008 1:58 pm
Localisation : São Paulo, Brésil
Contact :

Message par dlefur » ven. mai 30, 2008 8:03 pm

Ta dernière proposition fonctionne à merveille. :P
Je vais maintenant m'efforcer de toujours passer par l'expression.

Encore merci..

Répondre