Class BrownianMotionFromMersenneRandomNumbers

java.lang.Object
net.finmath.montecarlo.BrownianMotionFromMersenneRandomNumbers
All Implemented Interfaces:
Serializable, BrownianMotion, IndependentIncrements
Direct Known Subclasses:
BrownianMotionLazyInit

public class BrownianMotionFromMersenneRandomNumbers 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 quadruple (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:
  • Constructor Details

    • BrownianMotionFromMersenneRandomNumbers

      public BrownianMotionFromMersenneRandomNumbers(TimeDiscretization timeDiscretization, int numberOfFactors, int numberOfPaths, int seed, RandomVariableFactory randomVariableFactory)
      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.
      seed - The seed of the random number generator.
      randomVariableFactory - Factory to be used to create random variable.
    • BrownianMotionFromMersenneRandomNumbers

      public BrownianMotionFromMersenneRandomNumbers(TimeDiscretization timeDiscretization, int numberOfFactors, int numberOfPaths, int seed)
      Construct a Brownian motion.
      Parameters:
      timeDiscretization - The time discretization used for the Brownian increments.
      numberOfFactors - Number of factors.
      numberOfPaths - Number of paths to simulate.
      seed - The seed of the random number generator.
  • Method Details

    • 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.
    • getCloneWithModifiedTimeDiscretization

      public BrownianMotion getCloneWithModifiedTimeDiscretization(TimeDiscretization newTimeDiscretization)
      Description copied from interface: BrownianMotion
      Return a new object implementing BrownianMotion having the same specifications as this object but a different time discretization.
      Specified by:
      getCloneWithModifiedTimeDiscretization in interface BrownianMotion
      Specified by:
      getCloneWithModifiedTimeDiscretization in interface IndependentIncrements
      Parameters:
      newTimeDiscretization - New time discretization
      Returns:
      New object implementing BrownianMotion.
    • 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 BrownianMotion
      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)
    • 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).
    • getTimeDiscretization

      public TimeDiscretization getTimeDiscretization()
      Description copied from interface: BrownianMotion
      Returns the time discretization used for this set of time-discrete Brownian increments.
      Specified by:
      getTimeDiscretization in interface BrownianMotion
      Specified by:
      getTimeDiscretization in interface IndependentIncrements
      Returns:
      The time discretization used for this set of time-discrete Brownian increments.
    • getNumberOfFactors

      public int getNumberOfFactors()
      Description copied from interface: BrownianMotion
      Returns the number of factors.
      Specified by:
      getNumberOfFactors in interface BrownianMotion
      Specified by:
      getNumberOfFactors in interface IndependentIncrements
      Returns:
      The number of factors.
    • getNumberOfPaths

      public int getNumberOfPaths()
      Description copied from interface: BrownianMotion
      Returns the number of paths.
      Specified by:
      getNumberOfPaths in interface BrownianMotion
      Specified by:
      getNumberOfPaths in interface IndependentIncrements
      Returns:
      The number of paths.
    • getRandomVariableForConstant

      public RandomVariable getRandomVariableForConstant(double value)
      Description copied from interface: BrownianMotion
      Returns a random variable which is initialized to a constant, but has exactly the same number of paths or discretization points as the ones used by this BrownianMotion.
      Specified by:
      getRandomVariableForConstant in interface BrownianMotion
      Specified by:
      getRandomVariableForConstant in interface IndependentIncrements
      Parameters:
      value - The constant value to be used for initialized the random variable.
      Returns:
      A new random variable.
    • getSeed

      public int getSeed()
      Returns:
      Returns the seed.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object