Bonjour,
Xcas plante completement lorsque l'on demande solve(2<abs(x)<4) par exemple.
Cordialement
solve abs
Modérateur : xcasadmin
Re: solve abs
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.
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.
Re: solve abs
Merci pour votre réponse très rapide. Bon courage.
Re: solve abs
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
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);
Re: solve abs
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)))"
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)))"
Re: solve abs
je suis en train d'essayer d'améliorer solve pour pouvoir résoudre ce type d'inéquations...