One way to define (something almost the same as) what you want is : sage: f=piecewise([((-oo,0),x^3),((0,oo),x^2)],var=x) sage: f piecewise(x|-->x^3 on (-oo, 0), x|-->x^2 on (0, +oo); x) An indeed; you can do sage: plot(f(x),(x,-1,1), figsize=3)
which seems correct. Except for the point 0, for which the piecewise function is not defined : sage: f(0) --------------------------------------------------------------------------- ValueError Traceback (most recent call last) ... ValueError: point 0 is not in the domain You can even get : sage: integrate(f,x) piecewise(x|-->1/4*x^4 on (-oo, 0), x|-->1/3*x^3 on (0, +oo); x) which seems corect (modulo the oint 0, again...) But : sage: diff(f,x) (0, 0)*D[0]piecewise(x|-->x^3 on (-oo, 0), x|-->x^2 on (0, +oo); x) + D[1]piecewise(x|-->x^3 on (-oo, 0), x|-->x^2 on (0, +oo); x) sounds sheer nonsense to me... BTW, piecewise.py, which defines piecewise functions, defines the integral, but not the derivative... BUT I might not understand something obvious : the problem might reside between my chair and my keyboard... I also ,note that all "method-calling" calls (f.integrate(x), f(x).integrate(x), etc...) fail with the cryptic for now) message : "TypeError: __call__() takes exactly 2 arguments (3 given)". I think that this issue deserves exploration... Le mercredi 31 octobre 2018 10:11:34 UTC+1, Francesco a écrit : > > Hello; I have installed sage 8.4 and I have problem with the derivatives > ... > I have defined a function in sage of this type: > > x=var('x') > def funz(x): > if x >= 0: > return x^2 > else: > return x^3 > > but, when I try to calculate > > diff(funz(x),x) > > I obtain only > > 3x^2 > > and this is wrong !! Can you help me ? > -- You received this message because you are subscribed to the Google Groups "sage-support" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at https://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.