Re: piecewise vs which

*To*: mathgroup at smc.vnet.net*Subject*: [mg60110] Re: piecewise vs which*From*: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>*Date*: Sat, 3 Sep 2005 02:05:58 -0400 (EDT)*Organization*: The Open University, Milton Keynes, U.K.*References*: <df9437$620$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

Bradley Stoll wrote: > Consider defining a function in Mathematica (v. 5.2) in two different > ways: f[x_]=Piecewise[{{x^2,x<2},{3x,x>2}}] and > g[x_]=Which[x<2,x^2,x>2,3x]. Notice that 2 is not in the domain of > either function. However, if I ask for f[2], Mathematica returns 0 and if I ask > for g[2] Mathematica (correctly) returns nothing. Is this a bug with > Mathematica (that Mathematica returns 0 for f[2]), since 2 is not in the domain? Hi Bradley, Mathematica is "correct" by returning 0 for f[2] since this is the expected behavior as documented in the documentation for *Piecewise* "Piecewise[{{val_1, cond_1}, ...}, val] uses default value _val_ if none of the cond_i apply. *The default for _val_ is 0.*" http://documents.wolfram.com/mathematica/functions/Piecewise So it may be better to define your function in the following way In[1]:= f[x_] = Piecewise[{{x^2, x < 2}, {3*x, x > 2}}, "Undefined"]; f[2] Out[1]= Undefined Best regards, /J.M.