Class MonteCarloProcessFromProcessModel

java.lang.Object
net.finmath.montecarlo.process.MonteCarloProcessFromProcessModel
All Implemented Interfaces:
Cloneable, MonteCarloProcess, Process
Direct Known Subclasses:
EulerSchemeFromProcessModel

public abstract class MonteCarloProcessFromProcessModel extends Object implements MonteCarloProcess, Cloneable
This class is an abstract base class to implement a multi-dimensional multi-factor Ito process. The dimension is called numberOfComponents here. The default for numberOfFactors is 1. This base class manages the time discretization and delegation to the model.
Version:
1.5
Author:
Christian Fries
See Also:
  • Constructor Details

    • MonteCarloProcessFromProcessModel

      public MonteCarloProcessFromProcessModel(TimeDiscretization timeDiscretization, ProcessModel model)
      Create a discretization scheme / a time discrete process.
      Parameters:
      timeDiscretization - The time discretization used for the discretization scheme.
      model - Set the model used to generate the stochastic process. The model has to implement ProcessModel.
  • Method Details

    • getCloneWithModifiedSeed

      public abstract Object getCloneWithModifiedSeed(int seed)
    • getModel

      public ProcessModel getModel()
      Get the model used to generate the stochastic process. The model has to implement ProcessModel.
      Specified by:
      getModel in interface Process
      Returns:
      The model that is used to generate this process, null if no model was used.
    • getNumberOfComponents

      public int getNumberOfComponents()
      Specified by:
      getNumberOfComponents in interface Process
      Returns:
      Returns the numberOfComponents.
    • getInitialState

      public RandomVariable[] getInitialState()
    • getDrift

      public RandomVariable[] getDrift(int timeIndex, RandomVariable[] realizationAtTimeIndex, RandomVariable[] realizationPredictor)
    • getFactorLoading

      public RandomVariable[] getFactorLoading(int timeIndex, int componentIndex, RandomVariable[] realizationAtTimeIndex)
    • applyStateSpaceTransform

      public RandomVariable applyStateSpaceTransform(int timeIndex, int componentIndex, RandomVariable randomVariable)
    • applyStateSpaceTransformInverse

      public RandomVariable applyStateSpaceTransformInverse(int timeIndex, int componentIndex, RandomVariable randomVariable)
    • getTimeDiscretization

      public TimeDiscretization getTimeDiscretization()
      Specified by:
      getTimeDiscretization in interface Process
      Returns:
      Returns the timeDiscretizationFromArray.
    • getTime

      public double getTime(int timeIndex)
      Specified by:
      getTime in interface Process
      Parameters:
      timeIndex - Time index.
      Returns:
      Returns the time for a given time index.
    • getTimeIndex

      public int getTimeIndex(double time)
      Description copied from interface: Process
      Returns the time index for a given simulation time.
      Specified by:
      getTimeIndex in interface Process
      Parameters:
      time - The given simulation time.
      Returns:
      Returns the time index for a given time
    • clone

      public abstract MonteCarloProcessFromProcessModel clone()
      Description copied from interface: MonteCarloProcess
      Create and return a clone of this process. The clone is not tied to any model, but has the same process specification, that is, if the model is the same, it would generate the same paths.
      Specified by:
      clone in interface MonteCarloProcess
      Specified by:
      clone in interface Process
      Overrides:
      clone in class Object
      Returns:
      Clone of the process