finMath lib documentation
net.finmath.montecarlo

## Class VarianceGammaProcess

• All Implemented Interfaces:
Serializable, IndependentIncrements

public class VarianceGammaProcess
extends Object
implements IndependentIncrements, Serializable
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
$$\theta \Gamma(t) + \sigma W(\Gamma(t))$$ The class is immutable and thread safe. It uses lazy initialization.
Version:
1.0
Author:
Alessandro Gnoatto
Serialized Form
• ### Constructor Summary

Constructors
Constructor and Description
VarianceGammaProcess(double sigma, double nu, double theta, TimeDiscretization timeDiscretization, int numberOfFactors, int numberOfPaths, int seed)
• ### Method Summary

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

• #### VarianceGammaProcess

public VarianceGammaProcess(double sigma,
double nu,
double theta,
TimeDiscretization timeDiscretization,
int numberOfFactors,
int numberOfPaths,
int seed)
• ### Method Detail

• #### 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)
• #### getSigma

public double getSigma()
Returns:
the sigma
• #### getNu

public double getNu()
Returns:
the nu
• #### getTheta

public double getTheta()
Returns:
the theta
• #### getBrownianMotion

public BrownianMotion getBrownianMotion()
Returns:
the Brownian motion
• #### getGammaProcess

public GammaProcess getGammaProcess()
Returns:
the Gamma subordinator
• #### getTimeDiscretization

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

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

public RandomVariable getRandomVariableForConstant(double value)
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 interface IndependentIncrements
Parameters:
value - The constant value to be used for initialized the random variable.
Returns:
A new random variable.
• #### getCloneWithModifiedSeed

public IndependentIncrements getCloneWithModifiedSeed(int seed)
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 interface IndependentIncrements
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 interface IndependentIncrements
Parameters:
newTimeDiscretization - New time discretization
Returns:
New object implementing BrownianMotion.