Havok

Derived module from hankeldmd.py for HAVOK.

Reference: - S. L. Brunton, B. W. Brunton, J. L. Proctor,Eurika Kaiser, and J. N. Kutz. Chaos as an intermittently forced linear system. Nature Communications, 8, 2017.

class HAVOK(svd_rank=0, tlsq_rank=0, exact=False, opt=False, rescale_mode=None, forward_backward=False, sorted_eigs=False, tikhonov_regularization=None, d=10)[source]

Bases: pydmd.hankeldmd.HankelDMD

Hankel alternative view of Koopman (HAVOK) analysis

property A

Get the matrix A in the relationship dV/dt = AV + Bu, where V denotes the linear embeddings and u denotes the forcing input.

Returns

linear dynamics matrix A.

Return type

numpy.ndarray

property B

Get the vector B in the relationship dV/dt = AV + Bu, where V denotes the linear embeddings and u denotes the forcing input.

Returns

forcing dynamics vector B.

Return type

numpy.ndarray

_dehankel(X)[source]

Given a hankel matrix X as a 2-D numpy.ndarray, returns the data as a 1-D time-series.

fit(x, dt)[source]

Perform HAVOK analysis on 1-D time-series data x given the size of the time step dt separating the observations in x.

property forcing_input

Get the time-delay embedding that forces the linear embeddings.

Returns

array containing the chaotic forcing term.

Return type

numpy.ndarray

property linear_embeddings

Get the time-delay embeddings of the data that are governed by linear dynamics. Emeddings are stored as columns of the returned matrix.

Returns

matrix containing the linear time-delay embeddings.

Return type

numpy.ndarray

property r

Number of time-delay embeddings utilized by the HAVOK model. Note: d is the same as svd_rank if svd_rank is a positive integer.

property reconstructed_data

Get the reconstructed data.

Returns

the matrix that contains the reconstructed snapshots.

Return type

numpy.ndarray

reconstructions_of_timeindex(timeindex=None)[source]

Build a collection of all the available versions of the given timeindex. The indexing of time instants is the same used for reconstructed_data(). For each time instant there are at least one and at most d versions. If timeindex is None the function returns the whole collection, for all the time instants.

Parameters

timeindex (int) – The index of the time snapshot.

Returns

a collection of all the available versions for the given time snapshot, or for all the time snapshots if timeindex is None (in the second case, time varies along the first dimension of the array returned).

Return type

numpy.ndarray or list