Class LIBORVolatilityModelFromGivenMatrix

java.lang.Object
net.finmath.montecarlo.interestrate.models.covariance.LIBORVolatilityModel
net.finmath.montecarlo.interestrate.models.covariance.LIBORVolatilityModelFromGivenMatrix
All Implemented Interfaces:
Serializable

public class LIBORVolatilityModelFromGivenMatrix extends LIBORVolatilityModel
Implements a simple volatility model using given piece-wise constant values on a given discretization grid.
Version:
1.0
Author:
Christian Fries
See Also:
  • Constructor Details

    • LIBORVolatilityModelFromGivenMatrix

      public LIBORVolatilityModelFromGivenMatrix(RandomVariableFactory randomVariableFactory, TimeDiscretization timeDiscretization, TimeDiscretization liborPeriodDiscretization, RandomVariable[][] volatility, boolean isCalibrateable)
      Creates a simple volatility model using given piece-wise constant values on a given discretization grid. The indexing of the matrix volatility is [timeIndex][compnentIndex] where timeIndex refers to the simulation time index j of t_j and componentIndex refers to the tenor time discretization i for the i-th forward rate. In other words, \sigma_i(t_j) is given by volatility[j][i].
      Parameters:
      randomVariableFactory - The random variable factor used to construct random variables from the parameters.
      timeDiscretization - Discretization of simulation time.
      liborPeriodDiscretization - Discretization of tenor times.
      volatility - Volatility matrix volatility[timeIndex][componentIndex] where timeIndex the index of the start time in timeDiscretizationFromArray and componentIndex from liborPeriodDiscretization
      isCalibrateable - Set this to true, if the parameters are available for calibration.
    • LIBORVolatilityModelFromGivenMatrix

      public LIBORVolatilityModelFromGivenMatrix(TimeDiscretization timeDiscretization, TimeDiscretization liborPeriodDiscretization, RandomVariable[][] volatility, boolean isCalibrateable)
      Creates a simple volatility model using given piece-wise constant values on a given discretization grid. The indexing of the matrix volatility is [timeIndex][compnentIndex] where timeIndex refers to the simulation time index j of t_j and componentIndex refers to the tenor time discretization i for the i-th forward rate. In other words, \sigma_i(t_j) is given by volatility[j][i].
      Parameters:
      timeDiscretization - Discretization of simulation time.
      liborPeriodDiscretization - Discretization of tenor times.
      volatility - Volatility matrix volatility[timeIndex][componentIndex] where timeIndex the index of the start time in timeDiscretizationFromArray and componentIndex from liborPeriodDiscretization
      isCalibrateable - Set this to true, if the parameters are available for calibration.
    • LIBORVolatilityModelFromGivenMatrix

      public LIBORVolatilityModelFromGivenMatrix(TimeDiscretization timeDiscretization, TimeDiscretization liborPeriodDiscretization, RandomVariable[][] volatility)
      Creates a simple volatility model using given piece-wise constant values on a given discretization grid. The indexing of the matrix volatility is [timeIndex][compnentIndex] where timeIndex refers to the simulation time index j of t_j and componentIndex refers to the tenor time discretization i for the i-th forward rate. In other words, \sigma_i(t_j) is given by volatility[j][i].
      Parameters:
      timeDiscretization - Discretization of simulation time.
      liborPeriodDiscretization - Discretization of tenor times.
      volatility - Volatility matrix volatility[timeIndex][componentIndex] where timeIndex the index of the start time in timeDiscretizationFromArray and componentIndex from liborPeriodDiscretization
    • LIBORVolatilityModelFromGivenMatrix

      public LIBORVolatilityModelFromGivenMatrix(RandomVariableFactory randomVariableFactory, TimeDiscretization timeDiscretization, TimeDiscretization liborPeriodDiscretization, double[][] volatility, boolean isCalibrateable)
      Creates a simple volatility model using given piece-wise constant values on a given discretization grid.
      Parameters:
      randomVariableFactory - The random variable factor used to construct random variables from the parameters.
      timeDiscretization - Discretization of simulation time.
      liborPeriodDiscretization - Discretization of tenor times.
      volatility - Volatility matrix volatility[timeIndex][componentIndex] where timeIndex the index of the start time in timeDiscretizationFromArray and componentIndex from liborPeriodDiscretization
      isCalibrateable - Set this to true, if the parameters are available for calibration.
    • LIBORVolatilityModelFromGivenMatrix

      public LIBORVolatilityModelFromGivenMatrix(RandomVariableFactory randomVariableFactory, TimeDiscretization timeDiscretization, TimeDiscretization liborPeriodDiscretization, double[][] volatility)
      Creates a simple volatility model using given piece-wise constant values on a given discretization grid. The indexing of the matrix volatility is [timeIndex][compnentIndex] where timeIndex refers to the simulation time index j of t_j and componentIndex refers to the tenor time discretization i for the i-th forward rate. In other words, \sigma_i(t_j) is given by volatility[j][i].
      Parameters:
      randomVariableFactory - The random variable factor used to construct random variables from the parameters.
      timeDiscretization - Discretization of simulation time.
      liborPeriodDiscretization - Discretization of tenor times.
      volatility - Volatility matrix volatility[timeIndex][componentIndex] where timeIndex the index of the start time in timeDiscretizationFromArray and componentIndex from liborPeriodDiscretization
    • LIBORVolatilityModelFromGivenMatrix

      public LIBORVolatilityModelFromGivenMatrix(TimeDiscretization timeDiscretization, TimeDiscretization liborPeriodDiscretization, double[][] volatility)
      Creates a simple volatility model using given piece-wise constant values on a given discretization grid. The indexing of the matrix volatility is [timeIndex][compnentIndex] where timeIndex refers to the simulation time index j of t_j and componentIndex refers to the tenor time discretization i for the i-th forward rate. In other words, \sigma_i(t_j) is given by volatility[j][i].
      Parameters:
      timeDiscretization - Discretization of simulation time.
      liborPeriodDiscretization - Discretization of tenor times.
      volatility - Volatility matrix volatility[timeIndex][componentIndex] where timeIndex the index of the start time in timeDiscretizationFromArray and componentIndex from liborPeriodDiscretization
  • Method Details

    • getVolatility

      public RandomVariable getVolatility(int timeIndex, int component)
      Description copied from class: LIBORVolatilityModel
      Implement this method to complete the implementation.
      Specified by:
      getVolatility in class LIBORVolatilityModel
      Parameters:
      timeIndex - The time index (for timeDiscretizationFromArray)
      component - The libor index (for liborPeriodDiscretization)
      Returns:
      A random variable (e.g. as a vector of doubles) representing the volatility for each path.
    • getParameter

      public RandomVariable[] getParameter()
      Specified by:
      getParameter in class LIBORVolatilityModel
    • getCloneWithModifiedParameter

      public LIBORVolatilityModelFromGivenMatrix getCloneWithModifiedParameter(RandomVariable[] parameter)
      Specified by:
      getCloneWithModifiedParameter in class LIBORVolatilityModel
    • clone

      public Object clone()
      Specified by:
      clone in class LIBORVolatilityModel
    • getCloneWithModifiedData

      public LIBORVolatilityModel getCloneWithModifiedData(Map<String,Object> dataModified)
      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 map dataModified. 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 class LIBORVolatilityModel
      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).