java.lang.Object
net.finmath.montecarlo.VarianceGammaProcess
- All Implemented Interfaces:
Serializable
,IndependentIncrements
Implementation of a time-discrete n-dimensional Variance Gamma process via Brownian subordination through
a Gamma Process.
To simulate the Variance Gamma process with paramters \( (\sigma,\theta,\nu) \) we proceed in two steps:
- we simulate the path of a GammaProcess with parameters \( \frac{1}{\nu} and \nu \)
- use the GammaProcess as a subordinator for a Brownian motion with drift
- Version:
- 1.0
- Author:
- Alessandro Gnoatto
- See Also:
- Serialized Form
-
Constructor Summary
ConstructorsConstructorDescriptionVarianceGammaProcess(double sigma, double nu, double theta, TimeDiscretization timeDiscretization, int numberOfFactors, int numberOfPaths, int seed)
-
Method Summary
Modifier and TypeMethodDescriptiongetCloneWithModifiedSeed(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.double
getNu()
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.double
getSigma()
double
getTheta()
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 Details
-
VarianceGammaProcess
public VarianceGammaProcess(double sigma, double nu, double theta, TimeDiscretization timeDiscretization, int numberOfFactors, int numberOfPaths, int seed)
-
-
Method Details
-
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 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)
-
getSigma
public double getSigma()- Returns:
- the sigma
-
getNu
public double getNu()- Returns:
- the nu
-
getTheta
public double getTheta()- Returns:
- the theta
-
getBrownianMotion
- Returns:
- the Brownian motion
-
getGammaProcess
- Returns:
- the Gamma subordinator
-
getTimeDiscretization
Description copied from interface:IndependentIncrements
Returns the time discretization used for this set of time-discrete Brownian increments.- 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:IndependentIncrements
Returns the number of factors.- Specified by:
getNumberOfFactors
in interfaceIndependentIncrements
- Returns:
- The number of factors.
-
getNumberOfPaths
public int getNumberOfPaths()Description copied from interface:IndependentIncrements
Returns the number of paths.- Specified by:
getNumberOfPaths
in interfaceIndependentIncrements
- Returns:
- The number of paths.
-
getRandomVariableForConstant
Description copied from interface:IndependentIncrements
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 interfaceIndependentIncrements
- Parameters:
value
- The constant value to be used for initialized the random variable.- Returns:
- A new random variable.
-
getCloneWithModifiedSeed
Description copied from interface:IndependentIncrements
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 interfaceIndependentIncrements
- Parameters:
seed
- New value for the seed.- Returns:
- New object implementing BrownianMotion.
-
getCloneWithModifiedTimeDiscretization
public IndependentIncrements getCloneWithModifiedTimeDiscretization(TimeDiscretization newTimeDiscretization)Description copied from interface:IndependentIncrements
Return a new object implementing BrownianMotion having the same specifications as this object but a different time discretization.- Specified by:
getCloneWithModifiedTimeDiscretization
in interfaceIndependentIncrements
- Parameters:
newTimeDiscretization
- New time discretization- Returns:
- New object implementing BrownianMotion.
-