finMath lib documentation
net.finmath.montecarlo.process

Class LinearInterpolatedTimeDiscreteProcess

• java.lang.Object
• net.finmath.montecarlo.process.LinearInterpolatedTimeDiscreteProcess
• All Implemented Interfaces:
ProcessInterface

public class LinearInterpolatedTimeDiscreteProcess
extends Object
implements ProcessInterface
A linear interpolated time discrete process, that is, given a collection of tuples (Double, RandomVariable) representing realizations $$X(t_{i})$$ this class implements the ProcessInterface and creates a stochastic process $$t \mapsto X(t)$$ where $X(t) = \frac{t_{i+1} - t}{t_{i+1}-t_{i}} X(t_{i}) + \frac{t - t_{i}}{t_{i+1}-t_{i}} X(t_{i+1})$ with $$t_{i} \leq t \leq t_{i+1}$$. Note: this is the interpolation scheme used in the convergence of the Euler-Maruyama scheme.
Author:
Christian Fries
• Constructor Summary

Constructors
Constructor and Description
LinearInterpolatedTimeDiscreteProcess(Map<Double,RandomVariableInterface> realizations)
Create a time discrete process by linear interpolation of random variables.
• Method Summary

All Methods
Modifier and Type Method and Description
LinearInterpolatedTimeDiscreteProcess add(LinearInterpolatedTimeDiscreteProcess process)
Create a new linear interpolated time discrete process by using the time discretization of this process and the sum of this process and the given one as its values.
LinearInterpolatedTimeDiscreteProcess apply(DoubleUnaryOperator function)
Create a new process consisting of the interpolation of the random variables obtained by applying the given function to this process discrete set of random variables.
ProcessInterface clone()
Create and return a clone of this process.
RandomVariableInterface getMonteCarloWeights(int timeIndex)
This method returns the weights of a weighted Monte Carlo method (the probability density).
int getNumberOfComponents()
RandomVariableInterface getProcessValue(double time, int component)
Returns the (possibly interpolated) value of this stochastic process at a given time $$t$$.
RandomVariableInterface getProcessValue(int timeIndex, int component)
This method returns the realization of a component of the process for a given time index.
double getTime(int timeIndex)
TimeDiscretizationInterface getTimeDiscretization()
int getTimeIndex(double time)
Returns the time index for a given simulation time.
• Methods inherited from class java.lang.Object

equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
• Constructor Detail

• LinearInterpolatedTimeDiscreteProcess

public LinearInterpolatedTimeDiscreteProcess(Map<Double,RandomVariableInterface> realizations)
Create a time discrete process by linear interpolation of random variables.
Parameters:
realizations - Given map from time to random variable. The map must not be modified.
• Method Detail

public LinearInterpolatedTimeDiscreteProcess add(LinearInterpolatedTimeDiscreteProcess process)
throws CalculationException
Create a new linear interpolated time discrete process by using the time discretization of this process and the sum of this process and the given one as its values.
Parameters:
process - A given process.
Returns:
A new process representing the of this and the given process.
Throws:
CalculationException - Thrown if the given process fails to evaluate at a certain time point.
• apply

public LinearInterpolatedTimeDiscreteProcess apply(DoubleUnaryOperator function)
Create a new process consisting of the interpolation of the random variables obtained by applying the given function to this process discrete set of random variables. That is $$t \mapsto Y(t)$$ where $Y(t) = \frac{t_{i+1} - t}{t_{i+1}-t_{i}} f(X(t_{i})) + \frac{t - t_{i}}{t_{i+1}-t_{i}} f(X(t_{i+1}))$ with $$t_{i} \leq t \leq t_{i+1}$$ and a given function $$f$$.
Parameters:
function - The function $$f$$, a univariate function.
Returns:
A new process consisting of the interpolation of the random variables obtained by applying the given function to this process discrete set of random variables.
• getProcessValue

public RandomVariableInterface getProcessValue(double time,
int component)
Returns the (possibly interpolated) value of this stochastic process at a given time $$t$$.
Parameters:
time - The time $$t$$.
component - The component to be returned (if this is a vector valued process), otherwise 0.
Returns:
The random variable $$X(t)$$.
• getProcessValue

public RandomVariableInterface getProcessValue(int timeIndex,
int component)
Description copied from interface: ProcessInterface
This method returns the realization of a component of the process for a given time index.
Specified by:
getProcessValue in interface ProcessInterface
Parameters:
timeIndex - Time index at which the process should be observed
component - Component index of the process
Returns:
The process component realizations (given as RandomVariable)
• getMonteCarloWeights

public RandomVariableInterface getMonteCarloWeights(int timeIndex)
Description copied from interface: ProcessInterface
This method returns the weights of a weighted Monte Carlo method (the probability density).
Specified by:
getMonteCarloWeights in interface ProcessInterface
Parameters:
timeIndex - Time index at which the process should be observed
Returns:
A vector of positive weights which sums up to one
• getNumberOfComponents

public int getNumberOfComponents()
Specified by:
getNumberOfComponents in interface ProcessInterface
Returns:
Returns the numberOfComponents.
• getTimeDiscretization

public TimeDiscretizationInterface getTimeDiscretization()
Specified by:
getTimeDiscretization in interface ProcessInterface
Returns:
Returns the timeDiscretization.
• getTime

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

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

public ProcessInterface clone()
Description copied from interface: ProcessInterface
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 ProcessInterface
Overrides:
clone in class Object
Returns:
Clone of the process