Implementation of numerical methods for the paper "An Euler scheme for McKean SDEs with Besov drift: convergence rate and implementation"
Authors/Creators
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:
- Luis Mario Chaparro Jáquez, Koparo.
- Elena Issoglio, Università degli Studi di Torino.
- Jan Palczewksi, Politechnika Wrocławska.
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.pyanderror_mv_drift.pyproduce 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