Class InverseTransformSampling
- java.lang.Object
-
- dev.nm.stat.random.rng.univariate.InverseTransformSampling
-
- All Implemented Interfaces:
RandomNumberGenerator
,Seedable
- Direct Known Subclasses:
InverseTransformSamplingExpRNG
,InverseTransformSamplingGammaRNG
,RayleighRNG
,WeibullRNG
public class InverseTransformSampling extends Object implements RandomNumberGenerator
Inverse transform sampling (also known as inversion sampling, the inverse probability integral transform, the inverse transformation method, Smirnov transform, golden rule, etc.) is a basic method for pseudo-random number sampling, i.e. for generating sample numbers at random from any probability distribution given its cumulative distribution function. This basic idea is this: to generate a random variable X with a cumulative distribution function F(x) for all x, we first sample u from the uniform distribution. Then, x = F-1(u) = Q(u). This method requires that F(x) has a continuous density function, hence, strictly increasing and its inverse well defined.- See Also:
- "Paul Glasserman. "p. 44," Monte Carlo Methods in Financial Engineering, 2004."
- Wikipedia: Inverse transform sampling
-
-
Constructor Summary
Constructors Constructor Description InverseTransformSampling(ProbabilityDistribution distribution)
Construct a random number generator to sample from a distribution.InverseTransformSampling(ProbabilityDistribution distribution, RandomLongGenerator uniform)
Construct a random number generator to sample from a distribution.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
nextDouble()
Get the next randomdouble
.void
seed(long... seeds)
Seed the random number/vector/scenario generator to produce repeatable experiments.
-
-
-
Constructor Detail
-
InverseTransformSampling
public InverseTransformSampling(ProbabilityDistribution distribution, RandomLongGenerator uniform)
Construct a random number generator to sample from a distribution.- Parameters:
distribution
- the distribution to sample fromuniform
- a uniform random number generator
-
InverseTransformSampling
public InverseTransformSampling(ProbabilityDistribution distribution)
Construct a random number generator to sample from a distribution.- Parameters:
distribution
- the distribution to sample from
-
-
Method Detail
-
seed
public void seed(long... seeds)
Description copied from interface:Seedable
Seed the random number/vector/scenario generator to produce repeatable experiments.
-
nextDouble
public double nextDouble()
Description copied from interface:RandomNumberGenerator
Get the next randomdouble
.- Specified by:
nextDouble
in interfaceRandomNumberGenerator
- Returns:
- the next random number
-
-