- All Implemented Interfaces:
BrownianMotion,IndependentIncrements
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 Summary
ConstructorsConstructorDescriptionBrownianBridge(BrownianMotion generator, RandomVariable[] start, RandomVariable[] end)BrownianBridge(TimeDiscretization timeDiscretization, int numberOfPaths, int seed, RandomVariable[] start, RandomVariable[] end)Construct a Brownian bridge, bridging from a given start to a given end.BrownianBridge(TimeDiscretization timeDiscretization, int numberOfPaths, int seed, RandomVariable start, RandomVariable end)Construct a Brownian bridge, bridging from a given start to a given end. -
Method Summary
Modifier and TypeMethodDescriptiongetBrownianIncrement(int timeIndex, int factor)Return the Brownian increment for a given timeIndex.getCloneWithModifiedSeed(int seed)Return a new object implementing BrownianMotion having the same specifications as this object but a different seed for the random number generator.getCloneWithModifiedTimeDiscretization(TimeDiscretization newTimeDiscretization)Return a new object implementing BrownianMotion having the same specifications as this object but a different time discretization.getIncrement(int timeIndex)Return the increment for a given timeIndex.getIncrement(int timeIndex, int factor)Return the increment for a given timeIndex and given factor.intReturns the number of factors.intReturns the number of paths.getRandomVariableForConstant(double value)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.Returns the time discretization used for this set of time-discrete Brownian increments.toString()Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface net.finmath.montecarlo.BrownianMotion
getBrownianIncrement
-
Constructor Details
-
BrownianBridge
-
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 Details
-
getBrownianIncrement
Description copied from interface:BrownianMotionReturn 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:
getBrownianIncrementin interfaceBrownianMotion- 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
Description copied from interface:BrownianMotionReturns the time discretization used for this set of time-discrete Brownian increments.- Specified by:
getTimeDiscretizationin interfaceBrownianMotion- Specified by:
getTimeDiscretizationin interfaceIndependentIncrements- Returns:
- The time discretization used for this set of time-discrete Brownian increments.
-
getNumberOfFactors
public int getNumberOfFactors()Description copied from interface:BrownianMotionReturns the number of factors.- Specified by:
getNumberOfFactorsin interfaceBrownianMotion- Specified by:
getNumberOfFactorsin interfaceIndependentIncrements- Returns:
- The number of factors.
-
getNumberOfPaths
public int getNumberOfPaths()Description copied from interface:BrownianMotionReturns the number of paths.- Specified by:
getNumberOfPathsin interfaceBrownianMotion- Specified by:
getNumberOfPathsin interfaceIndependentIncrements- Returns:
- The number of paths.
-
getRandomVariableForConstant
Description copied from interface:BrownianMotionReturns 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:
getRandomVariableForConstantin interfaceBrownianMotion- Specified by:
getRandomVariableForConstantin interfaceIndependentIncrements- Parameters:
value- The constant value to be used for initialized the random variable.- Returns:
- A new random variable.
-
getCloneWithModifiedSeed
Description copied from interface:BrownianMotionReturn 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:
getCloneWithModifiedSeedin interfaceBrownianMotion- Specified by:
getCloneWithModifiedSeedin interfaceIndependentIncrements- Parameters:
seed- New value for the seed.- Returns:
- New object implementing BrownianMotion.
-
getCloneWithModifiedTimeDiscretization
public BrownianMotion getCloneWithModifiedTimeDiscretization(TimeDiscretization newTimeDiscretization)Description copied from interface:BrownianMotionReturn a new object implementing BrownianMotion having the same specifications as this object but a different time discretization.- Specified by:
getCloneWithModifiedTimeDiscretizationin interfaceBrownianMotion- Specified by:
getCloneWithModifiedTimeDiscretizationin interfaceIndependentIncrements- Parameters:
newTimeDiscretization- New time discretization- Returns:
- New object implementing BrownianMotion.
-
getIncrement
Description copied from interface:IndependentIncrementsReturn 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:
getIncrementin interfaceIndependentIncrements- 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
Description copied from interface:IndependentIncrementsReturn 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:
getIncrementin interfaceBrownianMotion- Specified by:
getIncrementin interfaceIndependentIncrements- 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)
-
toString
-