       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}]]

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}, {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}]
>