Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.soft-sys.math.mathematica > #16768
| 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 |
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
Variables in ProbabilityDistribution have strange "scoping" mechanism CHARLES GILLINGHAM <cgillingham1@me.com> - 2014-04-11 06:08 +0000
csiph-web