solve abs

Bugs

Modérateur : xcasadmin

dido
Messages : 5
Inscription : mer. sept. 02, 2009 7:25 am

solve abs

Message par dido » mer. sept. 15, 2010 4:56 am

Bonjour,

Xcas plante completement lorsque l'on demande solve(2<abs(x)<4) par exemple.

Cordialement

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

Re: solve abs

Message par parisse » mer. sept. 15, 2010 7:24 am

En effet, je vais ajouter un test pour eviter le plantage. Mais ca ne resoudra pas l'inequation pour autant, xcas ne sait pas pour le moment resoudre ce type d'inequations. J'espere un jour l'implementer, par contre la syntaxe serait plutot
solve(abs(x)>2 && abs(x)<4)
en effet la forme 2<abs(x)<4 est comprise comme (2<abs(x))<4, ce qui est traduit en enlevant 4 aux 2 membres en chercher les x tels que le test -2<abs(x)-4 est plus petit que 0.

dido
Messages : 5
Inscription : mer. sept. 02, 2009 7:25 am

Re: solve abs

Message par dido » mer. sept. 15, 2010 9:57 am

Merci pour votre réponse très rapide. Bon courage.

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

Re: solve abs

Message par alb » jeu. sept. 16, 2010 6:52 pm

Cette double inéquation doit concerner la classe de première ?
Ceci me donne l'idée d'un script pour une classe de seconde visualisant la résolution de a<=f(x)<=b dans le cas d'une fonction paire strictement monotone sur les réels positifs.
Je me demande même s'il n'est pas possible de proposer aux élèves après avoir remplacé les coordonnées de tous les points par des ? de retrouver le script.
Voici le code pour 4<=10/(1+x^2)<=8

Code : Tout sélectionner

f(x):=10/(1+x^2);
a:=solve(f(x)=4)[1];
b:=solve(f(x)=8)[1];
si a>=b alors c:=a;a:=b;b:=c;fsi;
plot(f(x),xstep=0.001);
plot(f(x),x=-b..-a,affichage=vert+line_width_5);
plot(f(x),x=a..b,affichage=vert+line_width_5);
plot(0,x=-b..-a,affichage=bleu+line_width_5);
plot(0,x=a..b,affichage=bleu+line_width_5);
segment(point(-a,0),point(-a,f(a)),affichage=epaisseur_ligne_2+ligne_tiret);
segment(point(a,0),point(a,f(a)),affichage=epaisseur_ligne_2+ligne_tiret);
segment(point(b,0),point(b,f(b)),affichage=epaisseur_ligne_2+ligne_tiret);
segment(point(-b,0),point(-b,f(b)),affichage=epaisseur_ligne_2+ligne_tiret);
droite(y=f(a),affichage=rouge);droite(y=f(b),affichage=rouge);
legende(point(0,f(b)),simplifier(f(b)),quadrant2);
legende(point(0,f(a)),simplifier(f(a)),quadrant2);
legende(point(-b,0),-b,quadrant3);legende(point(-a,0),-a,quadrant4);
legende(point(b,0),b,quadrant4);legende(point(a,0),a,quadrant3);

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

Re: solve abs

Message par alb » mer. oct. 27, 2010 9:07 pm

Si j'ai bien compris solve(abs(a-1)>=2 and abs(a-1)<=4,a) est équivalent à solve(abs(a-1)>=2,a);solve(abs(a-1)<=4,a)
Il n'y a aucun moyen de trouver l'intersection de solve(abs(a-1)>=2,a) et de solve(abs(a-1)<=4,a) ?
En français la réponse est différente:
resoudre(abs(a-1)>=2 et abs(a-1)<=4,a) donne "Unable to isolate a in (((a-1)>=2) && (4>=(a-1)))"

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

Re: solve abs

Message par parisse » jeu. oct. 28, 2010 1:55 pm

je suis en train d'essayer d'améliorer solve pour pouvoir résoudre ce type d'inéquations...

Répondre