Published October 2, 2026 | Version 1.2.2

Implementation of numerical methods for the paper "An Euler scheme for McKean SDEs with Besov drift: convergence rate and implementation"

  • 1. ROR icon University of Turin
  • 2. ROR icon University of Leeds

Description

Implementation of numerical methods from the manuscript:

L. M. Chaparro Jaquez, E. Issoglio, and J. Palczewski, ‘An Euler scheme for McKean SDEs with Besov drift: convergence rate and implementation’, 2026, arXiv: arXiv:2603.02793. doi: 10.48550/arXiv.2603.02793.

Work by:

Brief Theory

We study the convergence rate of the Euler-Maruyama scheme for the one-dimensional McKean-Vlasov SDE

$$X_t = X_0 + \int_0^t F(\rho(s, X_s)) b(s, X_s) ds + W_t$$

Where the (Wt)t ≥ 0 is a Brownian motion, F is a nonlinear bounded function, and the drift b(t, ⋅) belongs to the space of Schwartz distributions 𝒮′(ℝ) for all t ∈ [0, T] with T < ∞ and $\rho(t, \cdot)$ is the law density of $X_t$ with $\rho(0, \cdot) = \rho_0$. By the distributional nature of the SDE, alternative ways to simulate the drift are necessary, which are implemented in this project.

Usage

Project Structure

The main module is dsdes.py, you can import it as usual.

The scripts figure1.py and figure2.py show the corresponding figures in the manuscript. Which import some of the data in form of *.csv files to avoid having to make expensive computations all the time.

The scripts error_mv.py and error_mv_drift.py compute the strong error of the Euler-Maruyama scheme.

WARNING: The scripts error_mv.py and error_mv_drift.py produce very big NumPy arrays and don’t recommend to run on a computer with less than 24 gigabytes of RAM. They are due for rewriting to make them more efficient.

The script stats.py performs the Kolmogorov-Smirnov and Cámer-von Mises tests for the goodness of fit of the sample of the SDE at time $t=1$, and the Wasserstein distance between the sample and the support (solution to the Fokker-Planck equation) providing some useful messages. This script requires and argument beta for the regularity of the SDEs and a fixed seed just for reproducibility purposes, there is nothing else special about said seed.

Running

For dependency management to be easier I suggest you run it with uv, this is uv run <script-name>.py. However, if you install the dependencies in pyproject.toml just run it with Python as normal.

Files

phd-mvsde-1.2.2.zip

Files (20.4 kB)

Name Size Download all
md5:cc431a98997347e810ceaaae16f5917f
20.4 kB Preview Download

Additional details

Software

Programming language
Python