Services & Resources / Wolfram Forums
MathGroup Archive
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: piecewise vs which

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

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.*"

So it may be better to define your function in the following way

f[x_] = Piecewise[{{x^2, x < 2}, {3*x, x > 2}}, "Undefined"];


Best regards,

  • Prev by Date: Re: Matrix/Array Simplification
  • Next by Date: scaling of ndsolve to large systems
  • Previous by thread: Re: piecewise vs which
  • Next by thread: Re: piecewise vs which