java.lang.Object
net.finmath.montecarlo.GammaProcess
- All Implemented Interfaces:
Serializable,IndependentIncrements
Implementation of a time-discrete n-dimensional Gamma process
\(
\Gamma = (\Gamma_{1},\ldots,\Gamma_{n})
\), where \( \Gamma_{i} \) is
a Gamma process and \( \Gamma_{i} \), \( \Gamma_{j} \) are
independent for i not equal j.
The increments \( \Delta \Gamma \) are Gamma distributed with shape parameter
shape * (t-s)
for \( t-s = \Delta t \) and scale parameter 1.
Here the dimension n is called factors since this Gamma process is used to
generate multi-dimensional multi-factor Levy processes and there one might
use a different number of factors to generate Levy processes of different
dimension.
The quintruppel (time discretization, number of factors, number of paths, seed, shape)
defines the state of an object of this class, i.e., GammaProcess for which
there parameters agree, generate the same random numbers.
The class is immutable and thread safe. It uses lazy initialization.- Version:
- 1.6
- Author:
- Christian Fries
- See Also:
- Serialized Form
-
Constructor Summary
ConstructorsConstructorDescriptionGammaProcess(TimeDiscretization timeDiscretization, int numberOfFactors, int numberOfPaths, int seed, double shape)Construct a Gamma process with a given shape parameter.GammaProcess(TimeDiscretization timeDiscretization, int numberOfFactors, int numberOfPaths, int seed, double shape, double scale)Construct a Gamma process with a given shape parameter. -
Method Summary
Modifier and TypeMethodDescriptionbooleangetCloneWithModifiedSeed(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.intReturns the number of factors.intReturns 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.intgetSeed()Returns the time discretization used for this set of time-discrete Brownian increments.inthashCode()toString()Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface net.finmath.montecarlo.IndependentIncrements
getIncrement
-
Constructor Details
-
GammaProcess
public GammaProcess(TimeDiscretization timeDiscretization, int numberOfFactors, int numberOfPaths, int seed, double shape, double scale)Construct a Gamma process with a given shape parameter.- Parameters:
timeDiscretization- The time discretization used for the Gamma increments.numberOfFactors- Number of factors.numberOfPaths- Number of paths to simulate.seed- The seed of the random number generator.shape- The shape parameter of the Gamma distribution.scale- The scale parameter of the Gamma distribution.
-
GammaProcess
public GammaProcess(TimeDiscretization timeDiscretization, int numberOfFactors, int numberOfPaths, int seed, double shape)Construct a Gamma process with a given shape parameter.- Parameters:
timeDiscretization- The time discretization used for the Gamma increments.numberOfFactors- Number of factors.numberOfPaths- Number of paths to simulate.seed- The seed of the random number generator.shape- The shape parameter of the Gamma distribution.
-
-
Method Details
-
getCloneWithModifiedSeed
Description copied from interface:IndependentIncrementsReturn 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:
getCloneWithModifiedSeedin interfaceIndependentIncrements- Parameters:
seed- New value for the seed.- Returns:
- New object implementing BrownianMotion.
-
getCloneWithModifiedTimeDiscretization
public IndependentIncrements getCloneWithModifiedTimeDiscretization(TimeDiscretization newTimeDiscretization)Description copied from interface:IndependentIncrementsReturn a new object implementing BrownianMotion having the same specifications as this object but a different time discretization.- Specified by:
getCloneWithModifiedTimeDiscretizationin interfaceIndependentIncrements- Parameters:
newTimeDiscretization- New time discretization- Returns:
- New object implementing BrownianMotion.
-
getIncrement
Description copied from interface:IndependentIncrementsReturn 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:
getIncrementin 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)
-
getTimeDiscretization
Description copied from interface:IndependentIncrementsReturns the time discretization used for this set of time-discrete Brownian increments.- Specified by:
getTimeDiscretizationin interfaceIndependentIncrements- Returns:
- The time discretization used for this set of time-discrete Brownian increments.
-
getNumberOfFactors
public int getNumberOfFactors()Description copied from interface:IndependentIncrementsReturns the number of factors.- Specified by:
getNumberOfFactorsin interfaceIndependentIncrements- Returns:
- The number of factors.
-
getNumberOfPaths
public int getNumberOfPaths()Description copied from interface:IndependentIncrementsReturns the number of paths.- Specified by:
getNumberOfPathsin interfaceIndependentIncrements- Returns:
- The number of paths.
-
getRandomVariableForConstant
Description copied from interface:IndependentIncrementsReturns 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:
getRandomVariableForConstantin interfaceIndependentIncrements- 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
-
equals
-
hashCode
public int hashCode()
-