# TransportMaps.Distributions.Examples.Lorenz63.Lorenz63Distributions¶

## Module Contents¶

### Classes¶

 Lorenz63DynamicsMap Defines the evolution of the dynamics. Lorenz63ForwardEulerMap Defines the evolution of the Lorenz-63 dynamics for one forward Euler step. Lorenz63MultipleStepsForwardEulerMap Defines the evolution of the dynamics for $$n$$ forward Euler steps. Lorenz63ForwardEulerDistribution 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$$

property sigma[source]
property beta[source]
property rho[source]
static _extract_state(u)[source]
evaluate(u, *args, **kwargs)[source]

[Abstract] Evaluate the map $$T$$ at the points $${\bf x} \in \mathbb{R}^{m \times d_x}$$.

Parameters:
• x (ndarray [$$m,d_x$$]) – evaluation points

• precomp (dict) – dictionary of precomputed values

• idxs_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 match x.shape[0].

Returns:

(ndarray [$$m,d_y$$]) – transformed points

Raises:

NotImplementedError – to be implemented in sub-classes

[Abstract] Evaluate the gradient $$\nabla_{\bf x}T$$ at the points $${\bf x} \in \mathbb{R}^{m \times d_x}$$.

Parameters:
• x (ndarray [$$m,d_x$$]) – evaluation points

• precomp (dict) – dictionary of precomputed values

• idxs_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 match x.shape[0].

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:
• x (ndarray [$$m,d_x$$]) – evaluation points

• precomp (dict) – dictionary of precomputed values

• idxs_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 match x.shape[0].

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 points

• dx (ndarray [$$m,d_x$$]) – direction on which to evaluate the Hessian

• precomp (dict) – dictionary of precomputed values

• idxs_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 match x.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}$
__init__(dt, sigma=10.0, beta=2.6666666666666665, rho=28.0)[source]
Parameters:
• dt (float) – step size $$\Delta t$$

• sigma (foat) – $$\sigma$$

• beta (foat) – $$\beta$$

• rho (foat) – $$\rho$$

property sigma[source]
property beta[source]
property rho[source]
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}$
__init__(n, dt, sigma=10.0, beta=2.6666666666666665, rho=28.0)[source]
Parameters:
• n (int) – number $$n$$ of Euler steps.

• dt (float) – step size $$\Delta t$$

• sigma (foat) – $$\sigma$$

• beta (foat) – $$\beta$$

• rho (foat) – $$\rho$$

property n[source]
property dt[source]
property sigma[source]
property beta[source]
property rho[source]
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}}$$.

property n[source]
property dt[source]
property sigma[source]
property beta[source]
property rho[source]
property t[source]
property t_obs[source]
property xs[source]
property ys[source]
step(y, x=None)[source]

Add a step to the hidden Markov Chain.

Parameters:
• y – observation. None if missing.

• x – state if known (for diagnostic)