Re: Get Distribution from Interpolated Function
- To: mathgroup at smc.vnet.net
- Subject: [mg128282] Re: Get Distribution from Interpolated Function
- From: Bob Hanlon <hanlonr357 at gmail.com>
- Date: Wed, 3 Oct 2012 23:40:15 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <20121003070909.A52016881@smc.vnet.net>
ff = Interpolation[
Table[{i, 1 + RandomReal[]},
{i, 0, 10}]];
Using the option Method->"Spline" is incompatible with the functions below.
The first argument to ProbabilityDistribution should be a PDF, i.e.,
it must be normalized.
dist = ProbabilityDistribution[ff[x]/Integrate[ff[x], {x, 0, 10}],
{x, 0, 10}];
randomData = RandomVariate[dist, 100000];
Show[
Histogram[randomData, {0.1}, "PDF",
ChartBaseStyle -> EdgeForm[None]],
Plot[PDF[dist, x], {x, 0, 10},
PlotStyle -> {Red, AbsoluteThickness[2]}]]
Bob Hanlon
On Wed, Oct 3, 2012 at 3:09 AM, Murta <rodrigomurtax at gmail.com> wrote:
> Hi All
>
> I'm trying to get a distribution from an interpolated function but with no success.
>
> (*Creating Dist from interpolation*)
> ff = Interpolation[Table[{i, 1 + RandomReal[1]}, {i, 0, 10, 1}], Method -> "Spline"];
> dist = ProbabilityDistribution[ff[x], {x, 0, 10}];
>
> (*Plot Interpolation ok!*)
> Plot[ff[x], {x, 0, 10}]
>
> (*Plot Dist ok!*)
> Plot[Evaluate@PDF[dist, x], {x, 0, 10}]
>
> (*do not work as spected, the histogram don't have the curve format*)
> randonData = RandomVariate[dist, 100000];
> Histogram[randonData, {0.1}, "Probability", PlotRange -> {{0, 10}, All}]
>
> tks in advance
> Murta
>
- References:
- Get Distribution from Interpolated Function
- From: Murta <rodrigomurtax@gmail.com>
- Get Distribution from Interpolated Function