This is a routine for integrating Ito stochastic differential equations
with fixed step sizes, along with support routines and a sample driver.
All compilable code here is written in Fortran 90.
For assistance with running this code, contact the author, Daniel Steck,
at .
This code is provided as-is, without warranty; you should thoroughly
test it before trusting it. This code is free for non-commercial use.
This is version 2.1 of this integrator.
The contents of this directory are:
README: this file
sderk90.f90: the file containing the integrator module
test1.f90: a sample driver for sderk90.f90 to integrate a problem with a
known analytic solution
sderk_support.f90: sample support module for sderk90.f90, implementing
the sample problem of test1.f90
utilities.f90: contains a routine used by test1.f to parse a command-line
argument
runscript: shell script to run test1.f90 for a number of different
internal step sizes, dumping the results to a series of files
along with the analytic solution
testscript.m: a script that runs in MATLAB or Octave to take the
results generated by ruscript, calculate the global
errors for the integration for different step sizes,
plot them, and fit the global errors to empirically
determine the global convergence order of the integration
Makefile: machine-independent makefile for test1.f, assuming you have
certain environment variables set
Makefile.Unix: if you don't have the proper environment variables set,
you can use this Makefile instead
(i.e. cp -f Makefile.Unix Makefile)
if you are running on a generic Unix system where the
Fortran 90 compiler is aliased to 'f90'
See the individual files for further documentation.
To summarize: to compile, run, and test the example code, you might
do something like:
> setenv F90 f90
> setenv F90CFLAGS '-c'
> make
> ./runscript
and then from within MATLAB or Octave, issue the command 'testscript'
CHANGELOG:
v. 2.1:
added direct refinement method of Mauthner/Burrage/Burrage, which is
more efficient in descending the Brownian tree than the older Levy-area
method. Levy areas can be selected via a hard-coded parameter.