MathGroup Archive 2010

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

Search the Archive

Re: Poor choice in PiecewiseExpand ?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg107557] Re: [mg107550] Poor choice in PiecewiseExpand ?
  • From: DrMajorBob <btreat1 at austin.rr.com>
  • Date: Wed, 17 Feb 2010 07:01:37 -0500 (EST)
  • References: <201002160855.DAA01520@smc.vnet.net>
  • Reply-to: drmajorbob at yahoo.com

Yes, that's a BUG.

Here's your original expression and its output:

expr1=PiecewiseExpand[Ceiling[x],0<=x<=3]

\[Piecewise]1	0<x<=1
2	1<x<=2
3	x>2
0	True

And here's an equivalent Which (you had the arguments out of order):

expr2=Which[0<x<=1,1,
1<x<=2,2,
x>2,3,
True,0]

expr1 == expr2 // Simplify

True

> My beef (confusion) is with the values given in Out[1] when x > 3.
> (This issue arises in Floor[x] and other such functions.)  Why is the
> value 3 ?  Since the assumption is that x lies in [0,3], giving a
> value of x outside this interval should result in an error message.
> No?.

No. You used PiecewiseExpand, so the result was Piecewise. Piecewise makes  
no assumptions; it tests x, then returns a value. It ALWAYS returns a  
value.

> Mathematica decided to make this function continuous with the values at  
> the
> end points of the assumed interval, where possible.

No. Mathematica computing Ceiling[x], just like you told it to, and  
Ceiling is left-continuous. For instance, Ceiling@2 is 2.

> My own feeling is that outside the assumed region, PiecewiseExpand
> should return  0 if anything.

On that, you're correct, and it's a bug. The correct output of  
PiecewiseExpand would be

expr3 = Which[0 < x <= 1, 1,
   1 < x <= 2, 2,
   2 < x < 3, 3,
   True, 0]

Bobby

On Tue, 16 Feb 2010 02:55:41 -0600, Jack L Goldberg 1 <jackgold at umich.edu>  
wrote:

> Hi Folks,
>
> I am running ver. 7.01.0 on a MackBookPro using OS 10.6.2.
>
> In[1]  PiecewiseExpand[Ceiling[x], 0 <= x <= 3]
>
> For clarity, I write the piecewise output in the form of a "Which"
> command.  It DOES NOT display as "Which", of course.
>
> Out[1]  Which[1, 1 <= x < 2, 2, 2 <= x <= 3, 3, x >= 3, 0, True]
>
>
> My beef (confusion) is with the values given in Out[1] when x > 3.
> (This issue arises in Floor[x] and other such functions.)  Why is the
> value 3 ?  Since the assumption is that x lies in [0,3], giving a
> value of x outside this interval should result in an error message.
> No?.  By the way, the value returned for x = -1 is zero so clearly(?)
> Mathematica decided to make this function continuous with the values at  
> the
> end points of the assumed interval, where possible.  Is this a
> documented feature of PiecewiseExpand?  Is it even a good idea?
>
> I can live with this "feature" by the way.  I just wish I hadn't had
> to discovered it after spending much time fooling around with
> PiecewiseExpand in other code that I am writing.
>
> My own feeling is that outside the assumed region, PiecewiseExpand
> should return  0 if anything.
>
> Jack
>
>


-- 
DrMajorBob at yahoo.com


  • Prev by Date: Re: Re: Re: May we trust IntegerQ ?
  • Next by Date: Re: (any documentation for) linear syntax?
  • Previous by thread: Poor choice in PiecewiseExpand ?
  • Next by thread: Re: Poor choice in PiecewiseExpand ?