Class EulerSchemeFromProcessModel

  • All Implemented Interfaces:
    Cloneable, MonteCarloProcess, Process

    public class EulerSchemeFromProcessModel
    extends MonteCarloProcessFromProcessModel
    This class implements some numerical schemes for multi-dimensional multi-factor Ito process.

    It features the standard Euler scheme and the standard predictor-corrector Euler scheme for Y, then applies the state space transform \( X = f(Y) \).

    For the standard Euler scheme the process \( Y = (Y_{1},\ldots,Y_{d}) \) is discretized as \[ Y_{j}(t_{i+1}) = Y_{j}(t_{i}) + \mu_{j}(t_{i}) \Delta t_{i} + \lambda_{1,j}(t_{i}) \Delta W_{1}(t_{i}) + \ldots + \lambda_{m,j} \Delta W_{m} \text{.} \]

    The parameters have to be provided by a ProcessModel:
    • \( f \) - applyStateSpaceTransform
    • \( Y(t_{0}) \) - getInitialState
    • \( \mu \) - getDrift
    • \( \lambda_{j} \) - getFactorLoading

    Using the state space transform \( (t,x) \mapsto \exp(x) \), it is possible to create a log-Euler scheme, i.e., \[ X(t_{i+1}) = X(t_{i}) \cdot \exp\left( (r(t_{i}) - \frac{1}{2} \sigma(t_{i})^2) \Delta t_{i} + \sigma(t_{i}) \Delta W(t_{i}) \right) \text{.} \] for a process \( \mathrm{d} X = r X \mathrm{d}t + \sigma X \mathrm{d}W \).

    The dimension \( d \) is called numberOfComponents here. The value \( m \) is called numberOfFactors here. The default for numberOfFactors is 1.
    Version:
    1.4
    Author:
    Christian Fries
    See Also:
    The interface definition contains more details.
    • Constructor Detail

      • EulerSchemeFromProcessModel

        public EulerSchemeFromProcessModel​(ProcessModel model,
                                           IndependentIncrements stochasticDriver)
        Create an Euler discretization scheme.
        Parameters:
        model - The model (the SDE specifcation) used to generate the (sampling of the) stochastic process.
        stochasticDriver - The stochastic driver of the process (e.g. a Brownian motion).
    • Method Detail

      • getProcessValue

        public RandomVariable getProcessValue​(int timeIndex,
                                              int componentIndex)
        This method returns the realization of the process at a certain time index.
        Parameters:
        timeIndex - Time index at which the process should be observed
        componentIndex - Component index of the process.
        Returns:
        A vector of process realizations (on path)
      • getMonteCarloWeights

        public RandomVariable getMonteCarloWeights​(int timeIndex)
        This method returns the weights of a weighted Monte Carlo method (the probability density).
        Parameters:
        timeIndex - Time index at which the process should be observed
        Returns:
        A vector of positive weights
      • getNumberOfPaths

        public int getNumberOfPaths()
        Returns:
        Returns the numberOfPaths.
      • getNumberOfFactors

        public int getNumberOfFactors()
        Returns:
        Returns the numberOfFactors.
      • getStochasticDriver

        public IndependentIncrements getStochasticDriver()
        Returns:
        Returns the independent increments interface used in the generation of the process
      • getCloneWithModifiedModel

        public MonteCarloProcess getCloneWithModifiedModel​(ProcessModel model)
        Description copied from interface: MonteCarloProcess
        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.
        Parameters:
        model - The model to be used.
        Returns:
        A clone of this model (or this model if no parameter was modified).
      • getCloneWithModifiedData

        public MonteCarloProcess getCloneWithModifiedData​(Map<String,​Object> dataModified)
        Description copied from interface: MonteCarloProcess
        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.
        Parameters:
        dataModified - Key-value-map of parameters to modify.
        Returns:
        A clone of this model (or this model if no parameter was modified).