Simulation.Aivika.Parameter.Random

Description

Tested with: GHC 7.6.3

This module defines the random parameters of simulation experiments.

Synopsis

# Documentation

Arguments

 :: Double minimum -> Double maximum -> Parameter Double

Computation that generates a new random number distributed uniformly.

To create a parameter that would return the same value within the simulation run, you should memoize the computation, which is important for the Monte-Carlo simulation.

To create a random function that would return the same values in the integration time points within the simulation run, you should either lift the computation to the `Dynamics` computation and then memoize it too but using the corresponded function for that computation, or just take the predefined function that does namely this.

Arguments

 :: Double mean -> Double deviation -> Parameter Double

Computation that generates a new random number distributed normally.

To create a parameter that would return the same value within the simulation run, you should memoize the computation, which is important for the Monte-Carlo simulation.

To create a random function that would return the same values in the integration time points within the simulation run, you should either lift the computation to the `Dynamics` computation and then memoize it too but using the corresponded function for that computation, or just take the predefined function that does namely this.

Arguments

 :: Double the mean (the reciprocal of the rate) -> Parameter Double

Computation that returns a new exponential random number with the specified mean (the reciprocal of the rate).

To create a parameter that would return the same value within the simulation run, you should memoize the computation, which is important for the Monte-Carlo simulation.

To create a random function that would return the same values in the integration time points within the simulation run, you should either lift the computation to the `Dynamics` computation and then memoize it too but using the corresponded function for that computation, or just take the predefined function that does namely this.

Arguments

 :: Double the scale (the reciprocal of the rate) -> Int the shape -> Parameter Double

Computation that returns a new Erlang random number with the specified scale (the reciprocal of the rate) and integer shape.

To create a parameter that would return the same value within the simulation run, you should memoize the computation, which is important for the Monte-Carlo simulation.

To create a random function that would return the same values in the integration time points within the simulation run, you should either lift the computation to the `Dynamics` computation and then memoize it too but using the corresponded function for that computation, or just take the predefined function that does namely this.

Arguments

 :: Double the mean -> Parameter Int

Computation that returns a new Poisson random number with the specified mean.

To create a parameter that would return the same value within the simulation run, you should memoize the computation, which is important for the Monte-Carlo simulation.

To create a random function that would return the same values in the integration time points within the simulation run, you should either lift the computation to the `Dynamics` computation and then memoize it too but using the corresponded function for that computation, or just take the predefined function that does namely this.

Arguments

 :: Double the probability -> Int the number of trials -> Parameter Int

Computation that returns a new binomial random number with the specified probability and trials.

To create a parameter that would return the same value within the simulation run, you should memoize the computation, which is important for the Monte-Carlo simulation.

To create a random function that would return the same values in the integration time points within the simulation run, you should either lift the computation to the `Dynamics` computation and then memoize it too but using the corresponded function for that computation, or just take the predefined function that does namely this.