Re: PiecewiseExpand bug?
- To: mathgroup at smc.vnet.net
- Subject: [mg68501] Re: PiecewiseExpand bug?
- From: ab_def at prontomail.com
- Date: Tue, 8 Aug 2006 06:28:38 -0400 (EDT)
- References: <eb45vn$n7p$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Mark Fisher wrote:
> This produces what I expect:
>
> Product[PDF[BernoulliDistribution[p], x[i]], {i, 3}] /.
> {x[1] -> 0, x[2] -> 1, x[3] -> 1}
>
> But this does not:
>
> PiecewiseExpand[Product[PDF[BernoulliDistribution[p], x[i]], {i, 3}]] /.
> {x[1] -> 0, x[2] -> 1, x[3] -> 1}
>
> It appears PiecewiseExpand does something it shouldn't here. Any thoughts?
>
> --Mark.
Yes, it's a bug. A simpler example:
In[1]:= f[x_] := Piecewise[{{1, x == 1}, {2, x == 2}}]
In[2]:= Reduce[f[x]*f[y]*f[z] != PiecewiseExpand[f[x]*f[y]*f[z]]]
Out[2]= z == 2 && y == 2 && x == 1
That is, the result of PiecewiseExpand gives a wrong value at one
point. It seems that the problem doesn't arise if we use a non-zero
default value:
In[3]:= <<statistics`
In[4]:= Product[PDF[BernoulliDistribution[p], x[i]], {i, 3}] /.
HoldPattern[Piecewise[L_] | Piecewise[L_, 0]] :>
Piecewise[L, zero] //
PiecewiseExpand[#] /. zero -> 0& //
# /. {x[1] -> 0, x[2] -> 1, x[3] -> 1}&
Out[4]= (-(-1 + p))*p^2
Maxim Rytin
m.r at inbox.ru