java.lang.Object
net.finmath.montecarlo.BrownianMotionWithControlVariate
- All Implemented Interfaces:
BrownianMotion
,IndependentIncrements
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 Summary
ConstructorsConstructorDescriptionBrownianMotionWithControlVariate(BrownianMotion brownianMotion)
Create a controlled Brownian motion. -
Method Summary
Modifier and TypeMethodDescriptiongetBrownianIncrement(int timeIndex, int factorIndex)
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, int factor)
Return the increment for a given timeIndex and given factor.int
Returns the number of factors.int
Returns 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.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface net.finmath.montecarlo.BrownianMotion
getBrownianIncrement
Methods inherited from interface net.finmath.montecarlo.IndependentIncrements
getIncrement
-
Constructor Details
-
BrownianMotionWithControlVariate
Create a controlled Brownian motion.- Parameters:
brownianMotion
- The Brownian motion providing the (un-controlled) factors dUj.
-
-
Method Details
-
getBrownianIncrement
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 interfaceBrownianMotion
- 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
Description copied from interface:BrownianMotion
Returns the time discretization used for this set of time-discrete Brownian increments.- Specified by:
getTimeDiscretization
in interfaceBrownianMotion
- Specified by:
getTimeDiscretization
in interfaceIndependentIncrements
- 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 interfaceBrownianMotion
- Specified by:
getNumberOfFactors
in interfaceIndependentIncrements
- Returns:
- The number of factors.
-
getNumberOfPaths
public int getNumberOfPaths()Description copied from interface:BrownianMotion
Returns the number of paths.- Specified by:
getNumberOfPaths
in interfaceBrownianMotion
- Specified by:
getNumberOfPaths
in interfaceIndependentIncrements
- Returns:
- The number of paths.
-
getRandomVariableForConstant
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 interfaceBrownianMotion
- Specified by:
getRandomVariableForConstant
in interfaceIndependentIncrements
- Parameters:
value
- The constant value to be used for initialized the random variable.- Returns:
- A new random variable.
-
getCloneWithModifiedSeed
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 interfaceBrownianMotion
- Specified by:
getCloneWithModifiedSeed
in interfaceIndependentIncrements
- 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 interfaceBrownianMotion
- Specified by:
getCloneWithModifiedTimeDiscretization
in interfaceIndependentIncrements
- Parameters:
newTimeDiscretization
- New time discretization- Returns:
- New object implementing BrownianMotion.
-
getIncrement
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 interfaceBrownianMotion
- Specified by:
getIncrement
in 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)
-