Class BrownianBridge

  • All Implemented Interfaces:
    BrownianMotion, IndependentIncrements

    public class BrownianBridge
    extends Object
    implements BrownianMotion
    This class implements a Brownian bridge, i.e., samples of realizations of a Brownian motion conditional to a given start and end value.

    A Brownian bridge is a conditional Brownian motion, i.e. for given random variables X and Y the Brownian bridge is
    (W(t) | W(s) = X , W(T) = Y),
    where W is a Brownian motion and s ≤ t ≤ T.

    The samples of the Brownian bridge are generated by a Brownian motion which will be used to fill the gap between start and end. It is important that this Browninan motion is independent from the one which generated start and end, i.e. here: it should have a different seed.

    The class implements the BrownianMotion, i.e., it only provides the increments of the Brownian bridge (however, in most application, like refinement of an Euler-scheme, this is exactly the desired object).

    Note: The number of paths needs to be specified, because the start and the end point may be not stochastic, i.e. it is not possible to infer this quantity from the specified start and end.

    Version:
    1.0
    Author:
    Christian Fries
    Date:
    24.11.2013
    • Constructor Detail

      • BrownianBridge

        public BrownianBridge​(TimeDiscretization timeDiscretization,
                              int numberOfPaths,
                              int seed,
                              RandomVariable[] start,
                              RandomVariable[] end)
        Construct a Brownian bridge, bridging from a given start to a given end.
        Parameters:
        timeDiscretization - The time discretization used for the Brownian increments.
        numberOfPaths - Number of paths to simulate.
        seed - The seed of the random number generator.
        start - Start value of the Brownian bridge.
        end - End value of the Brownian bridge.
      • BrownianBridge

        public BrownianBridge​(TimeDiscretization timeDiscretization,
                              int numberOfPaths,
                              int seed,
                              RandomVariable start,
                              RandomVariable end)
        Construct a Brownian bridge, bridging from a given start to a given end.
        Parameters:
        timeDiscretization - The time discretization used for the Brownian increments.
        numberOfPaths - Number of paths to simulate.
        seed - The seed of the random number generator.
        start - Start value of the Brownian bridge.
        end - End value of the Brownian bridge.
    • 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)
        Description copied from interface: IndependentIncrements
        Return the increment for a given timeIndex. The method returns the random variable vector Δ X(ti) := X(ti+1)-X(ti) for the given time index i.
        Specified by:
        getIncrement in interface IndependentIncrements
        Parameters:
        timeIndex - The time index (corresponding to the this class's time discretization)
        Returns:
        The vector-valued increment (as a vector (array) of random variables).
      • 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)