Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.soft-sys.math.mathematica > #16768

Variables in ProbabilityDistribution have strange "scoping" mechanism

From CHARLES GILLINGHAM <cgillingham1@me.com>
Newsgroups comp.soft-sys.math.mathematica
Subject Variables in ProbabilityDistribution have strange "scoping" mechanism
Date 2014-04-11 06:08 +0000
Message-ID <li80tm$abv$1@smc.vnet.net> (permalink)
References <20140410070657.9900D69EE@smc.vnet.net>
Organization Time-Warner Telecom

Show all headers | View raw


Bill Rowe brings up an interesting point. Does anyone know why the 
variables in ProbabilityDistribution use such an unusual form of 
scoping (forgive me if this is not the correct term). Why doesn't it operate analogously to Sum?

Consider these four cases:
Table[Sum[f[x], {x, 0, 3}], {y, 0, 3}]
Table[Sum[f[x], {x, 0, 3}], {x, 0, 3}]
Table[ProbabilityDistribution[f[x], {x, 0, 3}], {y, 0, 3}]
Table[ProbabilityDistribution[f[x], {x, 0, 3}], {x, 0, 3}]

In case 2, Mathematica correctly determines the scope of the inner 
variable, and knows that it is a different variable than the outer one.
In case 4, Mathematica fails in a bizarre way when there is a collision 
between internally and externally scoped variables. Mathematica produces 
these nonsensical distributions:
ProbabilityDistribution[f[x],{x,x,3}]
ProbabilityDistribution[f[x],{x,0,x}]
for reasons that are unclear.

Mathematica works correctly for this case. Mathematica knows that 
globalVariableX is local in both Sum and ProbabilityDistribution, however note that ProbabilityDistribution renames it to x, which is not ideal, but workable.
globalVariableX = 21
Sum[f[globalVariableX], {globalVariableX, 0, 3}]
ProbabilityDistribution[f[globalVariableX], {globalVariableX, 0, 3}]
ClearAll[globalVariableX]


On Apr 10, 2014, at 12:06 AM, Bill Rowe <readnews@sbcglobal.net> wrote:

> On 4/9/14 at 4:14 AM, cgillingham1@me.com (CHARLES GILLINGHAM) wrote:
>
>> Evaluate this:
>
>> ProbabilityDistribution[
>> Piecewise[{{0, x1 == 1 && x2 == 1}, {1/2, x1 == 1 && x2 == 0}, {0,
>> x1 == 0 && x2 == 1}, {1/2, x1 == 0 && x2 == 0}}], {x1, 0, 1,
>> 1}, {x2, 0, 1, 1}
>> ]
>> PDF[%][{1, 1}]
>
>> And you get:
>
>> Undefined
>
>> But the probability is obviously 0
>
>> Is there something I am misunderstanding about how simple Boolean
>> probability distributions should be set up?
>
> Start with a fresh session and pay attention to the syntax
> coloring. Note that x1 and x2 are undefined and your syntax does
> not make these local variables. That is entering
>
> f[x_]:=2 x
>
> will cause x to be colored differently than your x1, x2 above.
>
> You get undefined as a result since x1 and x2 are never defined.
>
>

Back to comp.soft-sys.math.mathematica | Previous | Next | Find similar


Thread

Variables in ProbabilityDistribution have strange "scoping" mechanism CHARLES GILLINGHAM <cgillingham1@me.com> - 2014-04-11 06:08 +0000

csiph-web