Class CorrelatedBrownianMotion

  • All Implemented Interfaces:
    BrownianMotion, IndependentIncrements

    public class CorrelatedBrownianMotion
    extends Object
    implements BrownianMotion
    Provides a correlated Brownian motion from given (independent) increments and a given matrix of factor loadings. The i-th factor of this BrownianMotionLazyInit is dWi where dWi = fi,1 dU1 + ... + fi,m dUm for i = 1, ..., n. Here fi,j are the factor loadings, an n × m-matrix. If dUj are independent, then dWi dWk = ρi,k dt where ρi,k = fi · fj. Note: It is possible to create this class with a Brownian motion U which is already correlated. The factors loadings will be applied accordingly.
    Version:
    1.0
    Author:
    Christian Fries
    • Constructor Detail

      • CorrelatedBrownianMotion

        public CorrelatedBrownianMotion​(BrownianMotion uncollelatedFactors,
                                        double[][] factorLoadings)
        Create a correlated Brownian motion from given independent increments and a given matrix of factor loadings. The i-th factor of this BrownianMotionLazyInit is dWi where dWi = fi,1 dU1 + ... + fi,m dUm for i = 1, ..., n. Here fi,j are the factor loadings, an n × m-matrix. If dUj are independent, then dWi dWk = ρi,k dt where ρi,k = fi · fj.
        Parameters:
        uncollelatedFactors - The Brownian motion providing the (uncorrelated) factors dUj.
        factorLoadings - The factor loadings fi,j.
    • Method Detail

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