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
- References:
- Poor choice in PiecewiseExpand ?
- From: Jack L Goldberg 1 <jackgold@umich.edu>
- Poor choice in PiecewiseExpand ?