Class BrownianMotionFromRandomNumberGenerator

  • All Implemented Interfaces:
    Serializable, BrownianMotion, IndependentIncrements

    public class BrownianMotionFromRandomNumberGenerator
    extends Object
    implements BrownianMotion, Serializable
    Implementation of a time-discrete n-dimensional Brownian motion W = (W1,...,Wn) where Wi is a Brownian motion and Wi, Wj are independent for i not equal j. For a correlated Brownian motion with see CorrelatedBrownianMotion. Here the dimension n is called factors since this Brownian motion is used to generate multi-dimensional multi-factor Ito processes and there one might use a different number of factors to generate Ito processes of different dimension. The quadruppel (time discretization, number of factors, number of paths, seed) defines the state of an object of this class, i.e., BrownianMotionLazyInit for which there parameters agree, generate the same random numbers. The class is immutable and thread safe. It uses lazy initialization.
    Version:
    1.6
    Author:
    Christian Fries
    See Also:
    Serialized Form
    • Constructor Detail

      • BrownianMotionFromRandomNumberGenerator

        public BrownianMotionFromRandomNumberGenerator​(TimeDiscretization timeDiscretization,
                                                       int numberOfFactors,
                                                       int numberOfPaths,
                                                       RandomNumberGenerator randomNumberGenerator,
                                                       RandomVariableFactory abstractRandomVariableFactory)
        Construct a Brownian motion. The constructor allows to set the factory to be used for the construction of random variables. This allows to generate Brownian increments represented by different implementations of the RandomVariable (e.g. the RandomVariableFromFloatArray internally using float representations).
        Parameters:
        timeDiscretization - The time discretization used for the Brownian increments.
        numberOfFactors - Number of factors.
        numberOfPaths - Number of paths to simulate.
        randomNumberGenerator - A random number generator for n-dimensional uniform random numbers (n = numberOfTimeSteps*numberOfFactors).
        abstractRandomVariableFactory - Factory to be used to create random variable.
      • BrownianMotionFromRandomNumberGenerator

        public BrownianMotionFromRandomNumberGenerator​(TimeDiscretization timeDiscretization,
                                                       int numberOfFactors,
                                                       int numberOfPaths,
                                                       RandomNumberGenerator randomNumberGenerator)
        Construct a Brownian motion.
        Parameters:
        timeDiscretization - The time discretization used for the Brownian increments.
        numberOfFactors - Number of factors.
        numberOfPaths - Number of paths to simulate.
        randomNumberGenerator - A random number generator for n-dimensional uniform random numbers (n = numberOfTimeSteps*numberOfFactors).
    • Method Detail

      • getCloneWithModifiedSeed

        public BrownianMotion getCloneWithModifiedSeed​(int seed)
        Description copied from interface: BrownianMotion
        Return a new object implementing BrownianMotion having the same specifications as this object but a different seed for the random number generator. This method is useful if you like to make Monte-Carlo samplings by changing the seed.
        Specified by:
        getCloneWithModifiedSeed in interface BrownianMotion
        Specified by:
        getCloneWithModifiedSeed in interface IndependentIncrements
        Parameters:
        seed - New value for the seed.
        Returns:
        New object implementing BrownianMotion.
      • getBrownianIncrement

        public RandomVariable getBrownianIncrement​(int timeIndex,
                                                   int factor)
        Description copied from interface: BrownianMotion
        Return the Brownian increment for a given timeIndex. The method returns the random variable Δ Wj(ti) := Wj(ti+1)-W(ti) for the given time index i and a given factor (index) j
        Specified by:
        getBrownianIncrement in interface BrownianMotion
        Parameters:
        timeIndex - The time index (corresponding to the this class's time discretization).
        factor - The index of the factor (independent scalar Brownian increment).
        Returns:
        The factor (component) of the Brownian increments (a random variable).
      • getIncrement

        public RandomVariable getIncrement​(int timeIndex,
                                           int factor)
        Description copied from interface: IndependentIncrements
        Return the increment for a given timeIndex and given factor. The method returns the random variable Δ Xj(ti) := Xj(ti+1)-X(ti) for the given time index i and a given factor (index) j
        Specified by:
        getIncrement in interface IndependentIncrements
        Parameters:
        timeIndex - The time index (corresponding to the this class's time discretization)
        factor - The index of the factor (independent scalar increment)
        Returns:
        The factor (component) of the increments (a random variable)
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object