compute_prinz_potential_eig

kooplearn.datasets.compute_prinz_potential_eig(gamma, sigma, dt, eval_right_on=None, num_components=4)[source]

Computes the eigenvalues and eigenfunctions of the Generator of the Overdamped Langevin dynamics for the Prinz potential.

The generator \(\mathcal{L}\) is defined as:

\[\mathcal{L} = -\frac{1}{\gamma} \nabla V(x) \cdot \nabla + \frac{\sigma^2}{2\gamma} \Delta\]

where \(V(x)\) is the Prinz potential. The eigenvalues \(\lambda_i\) and eigenfunctions \(\psi_i(x)\) satisfy \(\mathcal{L} \psi_i = \lambda_i \psi_i\). The Koopman eigenvalues for the discrete-time system are then \(e^{\lambda_i \Delta t}\).

Parameters:
  • gamma (float) – Friction coefficient of the Langevin dynamics.

  • sigma (float) – Noise amplitude of the Langevin dynamics.

  • dt (float) – Time step for the discrete-time Koopman operator.

  • eval_right_on (ndarray of shape (n_samples, n_features), optional) – Data points on which to evaluate the right eigenfunctions. If None, right eigenfunctions are not evaluated.

  • num_components (int, default 4) – Number of dominant eigenvalues and corresponding eigenfunctions to return.

Returns:

  • eigenvalues (ndarray) – The num_components dominant Koopman eigenvalues (i.e., \(e^{\lambda_i \Delta t}\)), sorted by magnitude in ascending order. Shape (num_components,).

  • eigenfunctions (ndarray) – The leading num_components right eigenfunctions evaluated at eval_right_on` if not None. Shape (len(eval_right_on), num_components).

Notes

The computation uses a Galerkin projection method with a 1D cosine basis to discretize the Fokker-Planck operator. The domain for the basis functions is set to (-3, 3).