Class BrownianMotionWithControlVariate

java.lang.Object
net.finmath.montecarlo.BrownianMotionWithControlVariate
All Implemented Interfaces:
BrownianMotion, IndependentIncrements

public class BrownianMotionWithControlVariate extends Object implements BrownianMotion
Provides a Brownian motion from given (independent) increments and performs a control of the expectation and the standard deviation. This class references a class providing Brownian increments \( \Delta U(t_{i}) \) and transforms them via \[ \Delta W(t_{i}) = a \Delta U(t_{i}) + b \] such that \Delta W(t_{i}) has exact mean 0 and exact standard deviation \( \sqrt{\Delta t_{i}} \).
Version:
1.0
Author:
Christian Fries
  • Constructor Details

    • BrownianMotionWithControlVariate

      public BrownianMotionWithControlVariate(BrownianMotion brownianMotion)
      Create a controlled Brownian motion.
      Parameters:
      brownianMotion - The Brownian motion providing the (un-controlled) factors dUj.
  • Method Details

    • getBrownianIncrement

      public RandomVariable getBrownianIncrement(int timeIndex, int factorIndex)
      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).
      factorIndex - 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.
    • 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)