piecewice pdf, problems with cdf
- To: mathgroup at smc.vnet.net
- Subject: [mg105365] piecewice pdf, problems with cdf
- From: michael partensky <partensky at gmail.com>
- Date: Sun, 29 Nov 2009 05:12:35 -0500 (EST)
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 > > >
- Follow-Ups:
- Re: piecewice pdf, problems with cdf
- From: DrMajorBob <btreat1@austin.rr.com>
- Re: piecewice pdf, problems with cdf
- From: DrMajorBob <btreat1@austin.rr.com>
- Re: piecewice pdf, problems with cdf
- From: DrMajorBob <btreat1@austin.rr.com>
- Re: piecewice pdf, problems with cdf
- From: Patrick Scheibe <pscheibe@trm.uni-leipzig.de>
- Re: piecewice pdf, problems with cdf
- From: DrMajorBob <btreat1@austin.rr.com>
- Re: piecewice pdf, problems with cdf