net.finmath.montecarlo
Class CorrelatedBrownianMotion
- java.lang.Object
-
- net.finmath.montecarlo.CorrelatedBrownianMotion
-
- All Implemented Interfaces:
- BrownianMotionInterface
public class CorrelatedBrownianMotion extends java.lang.Object implements BrownianMotionInterface
Provides a correlated Brownian motion from given (independent) increments and a given matrix of factor loadings. The i-th factor of this BrownianMotion 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.
-
-
Constructor Summary
Constructors Constructor and Description CorrelatedBrownianMotion(BrownianMotionInterface uncollelatedFactors, double[][] factorLoadings)Create a correlated Brownian motion from given independent increments and a given matrix of factor loadings.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description RandomVariableInterfacegetBrownianIncrement(int timeIndex, int factor)Return the Brownian increment for a given timeIndex.BrownianMotionInterfacegetCloneWithModifiedSeed(int seed)Return a new object implementing BrownianMotionInterface having the same specifications as this object but a different seed for the random number generator.BrownianMotionInterfacegetCloneWithModifiedTimeDiscretization(TimeDiscretizationInterface newTimeDiscretization)Return a new object implementing BrownianMotionInterface having the same specifications as this object but a different time discretization.intgetNumberOfFactors()Returns the number of factors.intgetNumberOfPaths()Returns the number of paths.RandomVariableInterfacegetRandomVariableForConstant(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.TimeDiscretizationInterfacegetTimeDiscretization()Returns the time discretization used for this set of time-discrete Brownian increments.
-
-
-
Constructor Detail
-
CorrelatedBrownianMotion
public CorrelatedBrownianMotion(BrownianMotionInterface 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 BrownianMotion 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 RandomVariableInterface getBrownianIncrement(int timeIndex, int factor)
Description copied from interface:BrownianMotionInterfaceReturn 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 interfaceBrownianMotionInterface- 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 TimeDiscretizationInterface getTimeDiscretization()
Description copied from interface:BrownianMotionInterfaceReturns the time discretization used for this set of time-discrete Brownian increments.- Specified by:
getTimeDiscretizationin interfaceBrownianMotionInterface- Returns:
- The time discretization used for this set of time-discrete Brownian increments.
-
getNumberOfFactors
public int getNumberOfFactors()
Description copied from interface:BrownianMotionInterfaceReturns the number of factors.- Specified by:
getNumberOfFactorsin interfaceBrownianMotionInterface- Returns:
- The number of factors.
-
getNumberOfPaths
public int getNumberOfPaths()
Description copied from interface:BrownianMotionInterfaceReturns the number of paths.- Specified by:
getNumberOfPathsin interfaceBrownianMotionInterface- Returns:
- The number of paths.
-
getRandomVariableForConstant
public RandomVariableInterface getRandomVariableForConstant(double value)
Description copied from interface:BrownianMotionInterfaceReturns 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:
getRandomVariableForConstantin interfaceBrownianMotionInterface- Parameters:
value- The constant value to be used for initialized the random variable.- Returns:
- A new random variable.
-
getCloneWithModifiedSeed
public BrownianMotionInterface getCloneWithModifiedSeed(int seed)
Description copied from interface:BrownianMotionInterfaceReturn 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:
getCloneWithModifiedSeedin interfaceBrownianMotionInterface- Parameters:
seed- New value for the seed.- Returns:
- New object implementing BrownianMotionInterface.
-
getCloneWithModifiedTimeDiscretization
public BrownianMotionInterface getCloneWithModifiedTimeDiscretization(TimeDiscretizationInterface newTimeDiscretization)
Description copied from interface:BrownianMotionInterfaceReturn a new object implementing BrownianMotionInterface having the same specifications as this object but a different time discretization.- Specified by:
getCloneWithModifiedTimeDiscretizationin interfaceBrownianMotionInterface- Parameters:
newTimeDiscretization- New time discretization- Returns:
- New object implementing BrownianMotionInterface.
-
-
DataMelt 3.0 © DataMelt by jWork.ORG