make_prinz_potential

kooplearn.datasets.make_prinz_potential(X0, n_steps=10000, dt=0.0001, gamma=0.1, sigma=1.4142135623730951, random_state=None)[source]

Generate a 1D Langevin trajectory for the “Prinz potential” Prinz et al. [1].

This quadruple-well potential exhibits three metastable states separated by energy barriers. The dynamics follow the (discretized) overdamped Langevin equation:

\[X_{t + 1} = X_t -\frac{1}{\gamma}\nabla V{X_t}\Delta t + \frac{\sigma}{\gamma}\sqrt{\Delta t}\xi_t,\]

where \(\xi_t\) is a Gaussian white noise process with zero mean and unit variance, \(\gamma\) is the friction coefficient, and \(k_B T = \frac{\sigma^2}{2\gamma}\) determines the thermal energy scale.

The potential is defined as:

\[V(x) = 32 x^8 - 256 e^{-80 x^2} - 80 e^{-40 (x + 0.5)^2} - 128 e^{-80 (x - 0.5)^2}.\]
Parameters:
  • X0 (float or array-like of shape (1,)) – Initial position.

  • n_steps (int, default 10000) – Number of discrete time steps to simulate.

  • dt (float, default 1e-4) – Time step size for Euler–Maruyama integration.

  • gamma (float, default 0.1) – Friction coefficient.

  • sigma (float, default :math:sqrt```{2}``:class:```) – Noise variance, corresponding to a thermal energy scale \(k_B T = \frac{\sigma^2}{2\gamma}\).

  • random_state (int, RandomState instance or None, default None) – Controls the random number generation for the noise. Pass an int for reproducible output across multiple function calls.

Returns:

df – Trajectory of the particle with column ['x'] and n_steps + 1 samples. Indexed by a MultiIndex with levels ['step', 'time'].

Metadata stored in df.attrs includes:

  • 'generator': 'make_prinz_potential';

  • 'X0': initial condition;

  • 'params': dictionary of all parameters.

Return type:

pandas.DataFrame

Examples

>>> import numpy as np
>>> from kooplearn.datasets import make_prinz_potential
>>> df = make_prinz_potential(X0=0.0, n_steps=5000, dt=1e-4)
[1]

Jan-Hendrik Prinz, Hao Wu, Marco Sarich, Bettina Keller, Martin Senne, Martin Held, John D. Chodera, Christof Schütte, and Frank Noé. Markov models of molecular kinetics: generation and validation. The Journal of Chemical Physics, May 2011. URL: http://dx.doi.org/10.1063/1.3565032, doi:10.1063/1.3565032.