ch.epfl.lis.sde.solver
Class MilsteinIto

java.lang.Object
  extended by ch.epfl.lis.sde.solver.SdeSolver
      extended by ch.epfl.lis.sde.solver.MilsteinIto

public class MilsteinIto
extends SdeSolver

This class implements the explicit Milstein method (strong order of convergence 1) to be used with SDEs using Ito scheme. The iterative Milstein scheme is given by the formula [1] Xn+1 = Xn + Fn*h + Gn*dWn + 0.5*Gn*Gn'*(dWn^2 - h) (Ito) <-- Implemented here! Xn+1 = Xn + Fn*h + Gn*dWn + 0.5*Gn*Gn'*(dWn^2) (Stratonovich) where h is the integration step size. This solver implements a first-order stochastic Runge-Kutta algorithm (FSRK) that does not need the user to specify explicitly the derivative of the diffusion term G'. [1] [1] P.E. Kloeden, E. Platen, and H. Schurz, Numerical solution of SDE through computer experiments, Springer, 1994. (pp 150-153) [2] http://en.wikipedia.org/wiki/Runge-Kutta_method_(SDE)

Author:
Thomas Schaffter (firstname.name@gmail.com)

Constructor Summary
MilsteinIto()
          Default constructor
 
Method Summary
 void advance(double t, double h, cern.colt.matrix.DoubleMatrix1D dW, cern.colt.matrix.DoubleMatrix1D dZ, cern.colt.matrix.DoubleMatrix1D Xin, cern.colt.matrix.DoubleMatrix1D Xout)
          Proceed on iteration of the numerical integration (step size = h)
 java.lang.String getDescription()
          Returns a description for this solver.
 void init()
          Initialization of the solver.
 void reset()
          Cleanup the solver
 
Methods inherited from class ch.epfl.lis.sde.solver.SdeSolver
checkConvergence, checkX, converged, generateW, generateWienerIncrements, generateWZ, getAbsolutePrecision, getH, getRelativePrecision, getSystem, getX, integrate, setAbsolutePrecision, setH, setRelativePrecision, setSystem, setX, step
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MilsteinIto

public MilsteinIto()
Default constructor

Method Detail

reset

public void reset()
Cleanup the solver

Overrides:
reset in class SdeSolver

init

public void init()
          throws java.lang.IllegalArgumentException
Initialization of the solver.

Overrides:
init in class SdeSolver
Throws:
java.lang.IllegalArgumentException

advance

public void advance(double t,
                    double h,
                    cern.colt.matrix.DoubleMatrix1D dW,
                    cern.colt.matrix.DoubleMatrix1D dZ,
                    cern.colt.matrix.DoubleMatrix1D Xin,
                    cern.colt.matrix.DoubleMatrix1D Xout)
             throws java.lang.Exception
Proceed on iteration of the numerical integration (step size = h)

Specified by:
advance in class SdeSolver
Throws:
java.lang.Exception

getDescription

public java.lang.String getDescription()
Returns a description for this solver.

Overrides:
getDescription in class SdeSolver