finMath lib documentation
net.finmath.montecarlo

## Class IndependentIncrements

• All Implemented Interfaces:
Serializable, IndependentIncrementsInterface

public class IndependentIncrements
extends Object
implements IndependentIncrementsInterface, Serializable
Implementation of a time-discrete n-dimensional sequence of independent increments W = (W1,...,Wn) form a given set of inverse cumulative distribution functions. Independent increments is a sequence of independent random variables index by the time index associated with the time discretization. At each time step the increment is a d-dimensional random variable $$Z(t_{i})$$, where d is numberOfFactors. where each component of $$Z_{j}(t_{i})$$ is given by $Z_{j}(t_{i}) = ICDF_{i,j}(U_{i,j})$ for a sequence of independent uniform distributes random variables U_{i,j}. The inverse cumulative distribution functions $$ICDF_{i,j}$$ are given by inverseCumulativeDistributionFunctions as the map $$i \mapsto ( j \mapsto ICDF_{i,j} )$$ (here i is the time index and j is the factor (component). Each $$U_{i,j}$$ is samples using numberOfPaths. The class is immutable and thread safe. It uses lazy initialization.
Version:
1.6
Author:
Christian Fries
Serialized Form
• ### Constructor Summary

Constructors
Constructor and Description
IndependentIncrements(TimeDiscretizationInterface timeDiscretization, int numberOfFactors, int numberOfPaths, int seed, IntFunction<IntFunction<DoubleUnaryOperator>> inverseCumulativeDistributionFunctions)
Construct the simulation of independet increments.
IndependentIncrements(TimeDiscretizationInterface timeDiscretization, int numberOfFactors, int numberOfPaths, int seed, IntFunction<IntFunction<DoubleUnaryOperator>> inverseCumulativeDistributionFunctions, AbstractRandomVariableFactory randomVariableFactory)
Construct the simulation of independent increments.
• ### Method Summary

All Methods
Modifier and Type Method and Description
boolean equals(Object o)
IndependentIncrementsInterface getCloneWithModifiedSeed(int seed)
Return a new object implementing BrownianMotionInterface having the same specifications as this object but a different seed for the random number generator.
IndependentIncrementsInterface getCloneWithModifiedTimeDiscretization(TimeDiscretizationInterface newTimeDiscretization)
Return a new object implementing BrownianMotionInterface having the same specifications as this object but a different time discretization.
RandomVariableInterface getIncrement(int timeIndex, int factor)
Return the increment for a given timeIndex and given factor.
int getNumberOfFactors()
Returns the number of factors.
int getNumberOfPaths()
Returns the number of paths.
RandomVariableInterface 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 BrownianMotionInterface.
int getSeed()
TimeDiscretizationInterface getTimeDiscretization()
Returns the time discretization used for this set of time-discrete Brownian increments.
int hashCode()
String toString()
• ### Methods inherited from class java.lang.Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait
• ### Methods inherited from interface net.finmath.montecarlo.IndependentIncrementsInterface

getIncrement
• ### Constructor Detail

• #### IndependentIncrements

public IndependentIncrements(TimeDiscretizationInterface timeDiscretization,
int numberOfFactors,
int numberOfPaths,
int seed,
IntFunction<IntFunction<DoubleUnaryOperator>> inverseCumulativeDistributionFunctions,
AbstractRandomVariableFactory randomVariableFactory)
Construct the simulation of independent increments. Independent increments is a sequence of independent random variables index by the time index associated with the time discretization. At each time step the increment is a d-dimensional random variable $$Z(t_{i})$$, where d is numberOfFactors. where each component of $$Z_{j}(t_{i})$$ is given by $Z_{j}(t_{i}) = ICDF_{i,j}(U_{i,j})$ for a sequence of independent uniform distributes random variables U_{i,j}. The inverse cumulative distribution functions $$ICDF_{i,j}$$ are given by inverseCumulativeDistributionFunctions as the map $$i \mapsto ( j \mapsto ICDF_{i,j} )$$ (here i is the time index and j is the factor (component). Each $$U_{i,j}$$ is samples using numberOfPaths. The constructor allows to set the factory to be used for the construction of random variables. This allows to generate increments represented by different implementations of the RandomVariableInterface (e.g. the RandomVariableLowMemory internally using float representations).
Parameters:
timeDiscretization - The time discretization used for the increments.
numberOfFactors - Number of factors.
numberOfPaths - Number of paths to simulate.
seed - The seed of the random number generator.
inverseCumulativeDistributionFunctions - A map from the timeIndices to a map from the from the factors to the corresponding inverse cumulative distribution function.
randomVariableFactory - Factory to be used to create random variable.
• #### IndependentIncrements

public IndependentIncrements(TimeDiscretizationInterface timeDiscretization,
int numberOfFactors,
int numberOfPaths,
int seed,
IntFunction<IntFunction<DoubleUnaryOperator>> inverseCumulativeDistributionFunctions)
Construct the simulation of independet increments. The independent increments is a sequence of independent random variables index by the time index associated with the time discretization. At each time step the increment is a d-dimensional random variable $$Z(t_{i})$$, where d is numberOfFactors. where each component of $$Z_{j}(t_{i})$$ is given by $Z_{j}(t_{i}) = ICDF_{i,j}(U_{i,j})$ for a sequence of independent uniform distributes random variables U_{i,j}. The inverse cumulative distribution functions $$ICDF_{i,j}$$ are given by inverseCumulativeDistributionFunctions as the map $$i \mapsto ( j \mapsto ICDF_{i,j} )$$ (here i is the time index and j is the factor (component). Each $$U_{i,j}$$ is samples using numberOfPaths.
Parameters:
timeDiscretization - The time discretization used for the increments.
numberOfFactors - Number of factors.
numberOfPaths - Number of paths to simulate.
seed - The seed of the random number generator.
inverseCumulativeDistributionFunctions - A map from the timeIndices to a map from the from the factors to the corresponding inverse cumulative distribution function.
• ### Method Detail

• #### getCloneWithModifiedSeed

public IndependentIncrementsInterface getCloneWithModifiedSeed(int seed)
Description copied from interface: IndependentIncrementsInterface
Return a new object implementing BrownianMotionInterface 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 IndependentIncrementsInterface
Parameters:
seed - New value for the seed.
Returns:
New object implementing BrownianMotionInterface.
• #### getCloneWithModifiedTimeDiscretization

public IndependentIncrementsInterface getCloneWithModifiedTimeDiscretization(TimeDiscretizationInterface newTimeDiscretization)
Description copied from interface: IndependentIncrementsInterface
Return a new object implementing BrownianMotionInterface having the same specifications as this object but a different time discretization.
Specified by:
getCloneWithModifiedTimeDiscretization in interface IndependentIncrementsInterface
Parameters:
newTimeDiscretization - New time discretization
Returns:
New object implementing BrownianMotionInterface.
• #### getIncrement

public RandomVariableInterface getIncrement(int timeIndex,
int factor)
Description copied from interface: IndependentIncrementsInterface
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 IndependentIncrementsInterface
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)
• #### getTimeDiscretization

public TimeDiscretizationInterface getTimeDiscretization()
Description copied from interface: IndependentIncrementsInterface
Returns the time discretization used for this set of time-discrete Brownian increments.
Specified by:
getTimeDiscretization in interface IndependentIncrementsInterface
Returns:
The time discretization used for this set of time-discrete Brownian increments.
• #### getNumberOfFactors

public int getNumberOfFactors()
Description copied from interface: IndependentIncrementsInterface
Returns the number of factors.
Specified by:
getNumberOfFactors in interface IndependentIncrementsInterface
Returns:
The number of factors.
• #### getNumberOfPaths

public int getNumberOfPaths()
Description copied from interface: IndependentIncrementsInterface
Returns the number of paths.
Specified by:
getNumberOfPaths in interface IndependentIncrementsInterface
Returns:
The number of paths.
• #### getRandomVariableForConstant

public RandomVariableInterface getRandomVariableForConstant(double value)
Description copied from interface: IndependentIncrementsInterface
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 BrownianMotionInterface.
Specified by:
getRandomVariableForConstant in interface IndependentIncrementsInterface
Parameters:
value - The constant value to be used for initialized the random variable.
Returns:
A new random variable.
• #### getSeed

public int getSeed()
Returns:
Returns the seed.
• #### toString

public String toString()
Overrides:
toString in class Object
• #### equals

public boolean equals(Object o)
Overrides:
equals in class Object
• #### hashCode

public int hashCode()
Overrides:
hashCode in class Object