MathGroup Archive 2009

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

Search the Archive

Re: piecewice pdf, problems with cdf

  • To: mathgroup at smc.vnet.net
  • Subject: [mg105371] Re: [mg105365] piecewice pdf, problems with cdf
  • From: DrMajorBob <btreat1 at austin.rr.com>
  • Date: Mon, 30 Nov 2009 06:09:40 -0500 (EST)
  • References: <200911291012.FAA16385@smc.vnet.net>
  • Reply-to: drmajorbob at yahoo.com

If it's a piecewise function... use Piecewise!!

Clear[x, f1, cdf]
f1[x_] = Piecewise[{{x^2/9, 0 <= x <= 3}}];
cdf[x_] =
   Piecewise[{{Assuming[0 < x <= 3,
       Integrate[f1@v, {v, -Infinity, x}]], 0 < x <= 3}}];

Plot[cdf@x, {x, -5, 5}]

Bobby

On Sun, 29 Nov 2009 04:12:35 -0600, michael partensky  
<partensky at gmail.com> wrote:

> Hi! Teaching the continuous distributions, I needed to introduce the
> piecewise functions.
> Here is the example that did not work well:
>
> In[56]:= f1[x_] /; 0 < x <= 3 := 1/9  x ^2;
> f1[x_] := 0;
>
> Plot[f1[x],{x,-1,4}] works fine. However, the results for cdf are  
> ambiguous
> In[57]:= cdf[x_] := Integrate[f1[v], {v, -\[Infinity], x}]
>
> In[59]:= cdf[1]
> Out[59]= 0
>
> I thought that may be the second definition (for some reason) overwrote  
> the
> first, but apparently this was not the case.
>
> Then I tried using Which,
>
> f1[x_] := Which[0 < x <= 3, x^2/9, x <= 0 || x > 3, 0];
>
> Plot[f2[x], {x, -1, 4}] worked fine.
>
> However, Plotting CDF is very slow.
>
> What is the reason for the first error and how to accelerate (compile?)   
> the
> second?
>
> Thanks
> Michael
>
> PS: I was aware about the issues with the derivatives of Piecewise
> functions, but expected  integration to be safe. What did i do wrong?
>
> On Tue, Nov 24, 2009 at 5:50 AM, Bill Rowe <readnews at sbcglobal.net>  
> wrote:
>
>> On 11/23/09 at 6:53 AM, lshifr at gmail.com (Leonid Shifrin) wrote:
>>
>> >Hi, Michael.
>>
>> >Your solution is indeed very memory -  hungry due to the mapping of
>> >Permutations, as you mentioned. The total number of permutations can
>> >be easily deduced from the list of multiplicities of elements in a
>> >given partition: n!/(n1!n2!...nk!), where n1, ..., nk are
>> >multiplicities of elements, and n is the length of the partition:
>> >n=n1+...+nk. The multiplicities can be obtained by Tally. The
>> >following modification can be realistically used in a much wider
>> >region of the problem's parameter space than your original one, and
>> >may possibly serve your needs.
>>
>> >In[1]:=
>> >Clear[outsNew];
>> >outsNew[sum_, thr_] :=
>> >Total[Factorial[Length[#]]/
>> >Times @@ Factorial[Tally[#][[All, 2]]] & /@
>> >Cases[IntegerPartitions[sum, thr, {1, 2, 3, 4, 5, 6}],
>> >Table[_, {thr}]]];
>>
>> The above can be made more efficient by using the form of
>> IntegerPartitions that only generates partitions of a given
>> length. That is
>>
>> outs[sum_, thr_] :=
>>    Total[Factorial[Length[#]]/
>>       Times @@ Factorial[Tally[#][[All, 2]]] & /@
>>      IntegerPartitions[sum, {thr}, {1, 2, 3, 4, 5, 6}]]
>>
>> does the same thing a bit more efficiently
>>
>>
>>
>


-- 
DrMajorBob at yahoo.com


  • Prev by Date: Re: Re: part assigned sequence behavior puzzling
  • Next by Date: Re: piecewice pdf, problems with cdf
  • Previous by thread: piecewice pdf, problems with cdf
  • Next by thread: Re: piecewice pdf, problems with cdf