finMath lib documentation
net.finmath.montecarlo

## 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 Summary

Constructors
Constructor and Description
CorrelatedBrownianMotion(BrownianMotion uncollelatedFactors, double[][] factorLoadings)
Create a correlated Brownian motion from given independent increments and a given matrix of factor loadings.
• ### Method Summary

All Methods
Modifier and Type Method and Description
RandomVariable getBrownianIncrement(int timeIndex, int factor)
Return the Brownian increment for a given timeIndex.
BrownianMotion 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.
BrownianMotion getCloneWithModifiedTimeDiscretization(TimeDiscretization newTimeDiscretization)
Return a new object implementing BrownianMotion having the same specifications as this object but a different time discretization.
RandomVariable 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.
RandomVariable 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.
TimeDiscretization getTimeDiscretization()
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.IndependentIncrements

getIncrement
• ### 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).
• #### getTimeDiscretization

public TimeDiscretization getTimeDiscretization()
Description copied from interface: BrownianMotion
Returns the time discretization used for this set of time-discrete Brownian increments.
Specified by:
getTimeDiscretization in interface BrownianMotion
Specified by:
getTimeDiscretization in interface IndependentIncrements
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 interface BrownianMotion
Specified by:
getNumberOfFactors in interface IndependentIncrements
Returns:
The number of factors.
• #### getNumberOfPaths

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

public RandomVariable getRandomVariableForConstant(double value)
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 interface BrownianMotion
Specified by:
getRandomVariableForConstant in interface IndependentIncrements
Parameters:
value - The constant value to be used for initialized the random variable.
Returns:
A new 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.
• #### 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 interface BrownianMotion
Specified by:
getCloneWithModifiedTimeDiscretization in interface IndependentIncrements
Parameters:
newTimeDiscretization - New time discretization
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)