Re: piecewise vs which

• To: mathgroup at smc.vnet.net
• Subject: [mg60122] Re: [mg60101] piecewise vs which
• From: "David Park" <djmp at earthlink.net>
• Date: Sat, 3 Sep 2005 02:06:13 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

```Bradley,

If you examine the Help for Piecewise you will see that it is possible to
include, as a last argument, a return value if none of the conditions are
True, and that the default value for this return value is 0. So the routine

You could define it this way.

f[x_] := Piecewise[{{x^2, x < 2}, {3x, x > 2}}, Indeterminate]

f[2]
Indeterminate

In fact, this is probably a good example for students in computer algebra.
One has to define things completely and if this is not done one is at the
mercy of others.

The Limit question is another good Mathematica question. Mathematica already
has thousands of commands. Most of them are fairly well designed but some of
them aren't and Limit seems to be one of these because people are always
asking and complaining about the Direction option. In any case, students and
teachers will often have to write routines to specialize to their case, or
to implement a more favorable usage. It would be just as well that students
learn this fact, and get used to writing definitions. So here are routines
you could use. (Students should learn how to write usage messages also.)

ForwardLimit::usage =
"ForwardLimit[expr, point, xvar:x] is the same as Limit[expr, xvar -> \
point, Direction -> 1]";
ForwardLimit[expr_, point_, xvar_:x] :=
Limit[expr, xvar -> point, Direction -> 1]

BackwardLimit::usage =
"BackwardLimit[expr, point, xvar:x] is the same as Limit[expr, xvar -> \
point, Direction -> -1]";
BackwardLimit[expr_, point_, xvar_:x] :=
Limit[expr, xvar -> point, Direction -> -1]

{ForwardLimit[f[x], 2], BackwardLimit[f[x], 2]}
{4, 6}

David Park

To: mathgroup at smc.vnet.net

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
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?
While I have eyes, there is another question regarding limits.  Is it
the case that Limit[f[x],x->2] defaulted as
Limit[f[x],x->2,Direction->-1] (a right hand limit)?  Both return 6 in
the above example.  I'm using Mathematica in my calculus class and would
like to explain why Mathematica does certain things.  It doesn't seem
that it would've been too difficult to just have two subroutines (a
right and left hand limit) to determine whether a 'full' limit actually
existed.
Thanks!