Module net.finmath.lib
Class LIBORVolatilityModelTwoParameterExponentialForm
java.lang.Object
net.finmath.montecarlo.interestrate.models.covariance.LIBORVolatilityModel
net.finmath.montecarlo.interestrate.models.covariance.LIBORVolatilityModelTwoParameterExponentialForm
- All Implemented Interfaces:
Serializable
Implements the volatility model σi(tj) = a * exp(-b (Ti-tj))
- Version:
- 1.0
- Author:
- Christian Fries
- See Also:
- Serialized Form
-
Constructor Summary
ConstructorsConstructorDescriptionLIBORVolatilityModelTwoParameterExponentialForm(RandomVariableFactory randomVariableFactory, TimeDiscretization timeDiscretization, TimeDiscretization liborPeriodDiscretization, double a, double b, boolean isCalibrateable)
Creates the volatility model σi(tj) = a * exp(-b (Ti-tj))LIBORVolatilityModelTwoParameterExponentialForm(RandomVariableFactory randomVariableFactory, TimeDiscretization timeDiscretization, TimeDiscretization liborPeriodDiscretization, RandomVariable a, RandomVariable b, boolean isCalibrateable)
Creates the volatility model σi(tj) = a * exp(-b (Ti-tj))LIBORVolatilityModelTwoParameterExponentialForm(TimeDiscretization timeDiscretization, TimeDiscretization liborPeriodDiscretization, double a, double b)
Creates the volatility model σi(tj) = a * exp(-b (Ti-tj)) -
Method Summary
Modifier and TypeMethodDescriptionclone()
getCloneWithModifiedData(Map<String,Object> dataModified)
Returns a clone of this model where the specified properties have been modified.getCloneWithModifiedParameter(RandomVariable[] parameter)
getVolatility(int timeIndex, int liborIndex)
Implement this method to complete the implementation.Methods inherited from class net.finmath.montecarlo.interestrate.models.covariance.LIBORVolatilityModel
getLiborPeriodDiscretization, getParameterAsDouble, getTimeDiscretization
-
Constructor Details
-
LIBORVolatilityModelTwoParameterExponentialForm
public LIBORVolatilityModelTwoParameterExponentialForm(RandomVariableFactory randomVariableFactory, TimeDiscretization timeDiscretization, TimeDiscretization liborPeriodDiscretization, RandomVariable a, RandomVariable b, boolean isCalibrateable)Creates the volatility model σi(tj) = a * exp(-b (Ti-tj))- Parameters:
randomVariableFactory
- The random variable factor used to construct random variables from the parameters.timeDiscretization
- The simulation time discretization tj.liborPeriodDiscretization
- The period time discretization Ti.a
- The parameter a: an initial volatility level.b
- The parameter b: exponential decay of the volatility.isCalibrateable
- Set this to true, if the parameters are available for calibration.
-
LIBORVolatilityModelTwoParameterExponentialForm
public LIBORVolatilityModelTwoParameterExponentialForm(RandomVariableFactory randomVariableFactory, TimeDiscretization timeDiscretization, TimeDiscretization liborPeriodDiscretization, double a, double b, boolean isCalibrateable)Creates the volatility model σi(tj) = a * exp(-b (Ti-tj))- Parameters:
randomVariableFactory
- The random variable factor used to construct random variables from the parameters.timeDiscretization
- The simulation time discretization tj.liborPeriodDiscretization
- The period time discretization Ti.a
- The parameter a: an initial volatility level.b
- The parameter b: exponential decay of the volatility.isCalibrateable
- Set this to true, if the parameters are available for calibration.
-
LIBORVolatilityModelTwoParameterExponentialForm
public LIBORVolatilityModelTwoParameterExponentialForm(TimeDiscretization timeDiscretization, TimeDiscretization liborPeriodDiscretization, double a, double b)Creates the volatility model σi(tj) = a * exp(-b (Ti-tj))- Parameters:
timeDiscretization
- The simulation time discretization tj.liborPeriodDiscretization
- The period time discretization Ti.a
- The parameter a: an initial volatility level.b
- The parameter b: exponential decay of the volatility.
-
-
Method Details
-
getParameter
- Specified by:
getParameter
in classLIBORVolatilityModel
-
getCloneWithModifiedParameter
public LIBORVolatilityModelTwoParameterExponentialForm getCloneWithModifiedParameter(RandomVariable[] parameter)- Specified by:
getCloneWithModifiedParameter
in classLIBORVolatilityModel
-
getVolatility
Description copied from class:LIBORVolatilityModel
Implement this method to complete the implementation.- Specified by:
getVolatility
in classLIBORVolatilityModel
- Parameters:
timeIndex
- The time index (for timeDiscretizationFromArray)liborIndex
- The libor index (for liborPeriodDiscretization)- Returns:
- A random variable (e.g. as a vector of doubles) representing the volatility for each path.
-
clone
- Specified by:
clone
in classLIBORVolatilityModel
-
getCloneWithModifiedData
Description copied from class:LIBORVolatilityModel
Returns a clone of this model where the specified properties have been modified. Note that there is no guarantee that a model reacts on a specification of a properties in the parameter mapdataModified
. If data is provided which is ignored by the model no exception may be thrown. Furthermore the structure of the correlation model has to match changed data. A change of the time discretizations may requires a change in the parameters but this function will just insert the new time discretization without changing the parameters. An exception may not be thrown.- Specified by:
getCloneWithModifiedData
in classLIBORVolatilityModel
- Parameters:
dataModified
- Key-value-map of parameters to modify.- Returns:
- A clone of this model (or a new instance of this model if no parameter was modified).
-