TransportMaps.Distributions.Examples.Lorenz63.Lorenz63Distributions
¶
Module Contents¶
Classes¶
Defines the evolution of the dynamics. |
|
Defines the evolution of the Lorenz-63 dynamics for one forward Euler step. |
|
Defines the evolution of the dynamics for \(n\) forward Euler steps. |
|
Defines the Hidden Markov Chain distribution defined by the Lorenz-63 dynamics. |
- class TransportMaps.Distributions.Examples.Lorenz63.Lorenz63Distributions.Lorenz63DynamicsMap(sigma=10.0, beta=8.0 / 3.0, rho=28.0)[source]¶
Bases:
TransportMaps.Maps.Map
Defines the evolution of the dynamics.
Evaluates the right hand side of the Lorenz-63 system:
\[\begin{split}\begin{cases} \dot{x} = \sigma ( y - x ) & \\ \dot{y} = x (\rho - z) - y & \\ \dot{z} = xy - \beta z & \end{cases}\end{split}\]- __init__(sigma=10.0, beta=2.6666666666666665, rho=28.0)[source]¶
- Parameters:
sigma (foat) – \(\sigma\)
beta (foat) – \(\beta\)
rho (foat) – \(\rho\)
- evaluate(u, *args, **kwargs)[source]¶
[Abstract] Evaluate the map \(T\) at the points \({\bf x} \in \mathbb{R}^{m \times d_x}\).
- Parameters:
- Returns:
(
ndarray
[\(m,d_y\)]) – transformed points- Raises:
NotImplementedError – to be implemented in sub-classes
- grad_x(u, *args, **kwargs)[source]¶
[Abstract] Evaluate the gradient \(\nabla_{\bf x}T\) at the points \({\bf x} \in \mathbb{R}^{m \times d_x}\).
- Parameters:
- Returns:
(
ndarray
[\(m,d_y,d_x\)]) – transformed points- Raises:
NotImplementedError – to be implemented in sub-classes
- hess_x(u, *args, **kwargs)[source]¶
[Abstract] Evaluate the Hessian \(\nabla^2_{\bf x}T\) at the points \({\bf x} \in \mathbb{R}^{m \times d_x}\).
- Parameters:
- Returns:
(
ndarray
[\(m,d_y,d_x,d_x\)]) – transformed points- Raises:
NotImplementedError – to be implemented in sub-classes
- action_hess_x(u, du, *args, **kwargs)[source]¶
[Abstract] Evaluate the action of the Hessian \(\langle\nabla^2_{\bf x}T,\delta{\bf x}\rangle\) at the points \({\bf x} \in \mathbb{R}^{m \times d_x}\).
- Parameters:
x (
ndarray
[\(m,d_x\)]) – evaluation pointsdx (
ndarray
[\(m,d_x\)]) – direction on which to evaluate the Hessianprecomp (
dict
) – dictionary of precomputed valuesidxs_slice (slice) – if precomputed values are present, this parameter indicates at which of the points to evaluate. The number of indices represented by
idxs_slice
must matchx.shape[0]
.
- Returns:
(
ndarray
[\(m,d_y,d_x\)]) – transformed points- Raises:
NotImplementedError – to be implemented in sub-classes
- class TransportMaps.Distributions.Examples.Lorenz63.Lorenz63Distributions.Lorenz63ForwardEulerMap(dt, sigma=10.0, beta=8.0 / 3.0, rho=28.0)[source]¶
Bases:
TransportMaps.Maps.ODEs.AutonomousForwardEulerMap
Defines the evolution of the Lorenz-63 dynamics for one forward Euler step.
Evaluates the Euler step of the Lorenz-63 system:
\[\begin{split}\begin{cases} x_{n+1} = x_n + \Delta t \cdot \sigma ( y_n - x_n ) & \\ y_{n+1} = y_n + \Delta t \cdot x_n (\rho - z_n) - y_n & \\ z_{n+1} = z_n + \Delta t \cdot x_n y_n - \beta z_n & \end{cases}\end{split}\]
- class TransportMaps.Distributions.Examples.Lorenz63.Lorenz63Distributions.Lorenz63MultipleStepsForwardEulerMap(n, dt, sigma=10.0, beta=8.0 / 3.0, rho=28.0)[source]¶
Bases:
TransportMaps.Maps.ListCompositeMap
Defines the evolution of the dynamics for \(n\) forward Euler steps.
Evaluates \(n\) times the Euler step of the Lorenz-63 system:
\[\begin{split}\begin{array}{c} x_{k} \\ y_{k} \\ z_{k} \end{array} \mapsto \begin{array}{c} x_k + \Delta t \cdot \sigma ( y_k - x_k ) \\ y_k + \Delta t \cdot x_k (\rho - z_k) - y_k \\ z_k + \Delta t \cdot x_k y_k - \beta z_k \end{array}\end{split}\]
- class TransportMaps.Distributions.Examples.Lorenz63.Lorenz63Distributions.Lorenz63ForwardEulerDistribution(n, dt, sigma, beta, rho, pi_init, pi_dyn, obs_map, pi_noise)[source]¶
-
Defines the Hidden Markov Chain distribution defined by the Lorenz-63 dynamics.
For \({\bf u} = [x, y, z]^\top\) and the index sets \(\Lambda={in : i=0,\ldots}\) and \(\Xi \subset \Lambda\) the model is defined by
\[\begin{split}\begin{cases} {\bf u}_{k+n} = g({\bf u}_k) + \varepsilon_{\text{dyn}} & \text{for } k \in \Lambda \\ {\bf y}_{k+n} &= h({\bf u}_{k+n}) + \varepsilon_{\text{noise}} & \text{for } k+n \in \Xi \;, \end{cases}\end{split}\]where \(g:{\bf u}_k \mapsto {\bf u}_{k+n}\) is the map corresponding to \(n\) Euler steps of the discretized dynamics with time step \(\Delta t\), \(h\) is the observation operator, \(\varepsilon_{\text{dyn}} \sim \pi_{\text{dyn}}\) is the dynamics noise, \(\varepsilon_{\text{noise}} \sim \pi_{\text{noise}}\) is the observational noise and the initial conditions \({\bf u}_0\) are distributed according to \(\pi_{\text{init}}\).