Page 1 sur 1

piecewise

Publié : ven. mai 29, 2015 7:55 pm
par alb
f(x):=piecewise(x<-4,undef,x<0,-x,x<1,-4x,x<3,2*x-6,x<4,-8*x+24,undef);
resoudre(f(x)=2) // liste vide or x=-2 est solution
resoudre(f(x)>0) // Erreur: Valeur Argument Incorrecte

fMin(f(x)) devrait-il marcher ici ?

Re: piecewise

Publié : sam. mai 30, 2015 12:53 pm
par parisse
C'est a cause des undef. Avec
f(x):=piecewise(x<0,-x,x<1,-4x,x<3,2*x-6,x<4,-8*x+24,1);
il n'y a pas de problemes.
Pas sur que je puisse ameliorer ca facilement...

Re: piecewise

Publié : sam. mai 30, 2015 1:12 pm
par parisse
bon peut-etre que si finalement, en remplacant undef par undef_ au debut de l'implementation de solve.

Re: piecewise

Publié : sam. mai 30, 2015 2:32 pm
par alb
je n'avais pas pense à essayer sans les undef :-(
il y a un cas qui s'affiche mal:
f(x):=piecewise(x<0,-x,x<1,-4x,x<3,2*x-6,x<4,-8*x+24,0);
resoudre(f(x)=0) // list[0,3,expr("not(((0>x) or (1>x) or (3>x) or (4>x)))",0)]

Re: piecewise

Publié : sam. mai 30, 2015 3:46 pm
par parisse
c'est le cas par defaut, difficile a simplifier (il n'y a pas de logique de ce type implementee dans xcas).