autokoopman.estimator package#

Submodules#

autokoopman.estimator.dmd module#

class autokoopman.estimator.dmd.DMDEstimator(normalize=True, feature_range=(-1, 1), weights=None)#

Bases: NextStepEstimator

fit_next_step(X: ndarray, Y: ndarray) None#

an alternative fit method that uses a trajectories data structure

property model: System#
class autokoopman.estimator.dmd.MultiDMD(svd_rank=0, tlsq_rank=0, exact=False, opt=False, rescale_mode=None, forward_backward=False, sorted_eigs=False, tikhonov_regularization=None)#

Bases: DMD

fit_multi(X, Y)#

Compute the Dynamic Modes Decomposition to the input data. :param X: the input snapshots. :type X: numpy.ndarray or iterable

autokoopman.estimator.koopman module#

class autokoopman.estimator.koopman.KoopmanContinuousEstimator(observables, dim, rank, weights=None, **kwargs)#

Bases: GradientEstimator

Koopman Continuous Estimator

Parameters:
  • observables – function that returns the observables of the system state

  • dim – dimension of the system state

  • rank – rank of the DMDc

  • weights – observation weights (optional)

References

Proctor, J. L., Brunton, S. L., & Kutz, J. N. (2018). Generalizing Koopman theory to allow for inputs and control. SIAM Journal on Applied Dynamical Systems, 17(1), 909-930.

See https://epubs.siam.org/doi/pdf/10.1137/16M1062296 for more details

fit_gradient(X: ndarray, Y: ndarray, U: ndarray | None = None, weights: ndarray | None = None) None#

fits the gradient system model

calls DMDC after building out the observables

property model: System#

packs the learned linear transform into a continuous linear system

class autokoopman.estimator.koopman.KoopmanDiscEstimator(observables, sampling_period, dim, rank, weights=None, **kwargs)#

Bases: NextStepEstimator

Koopman Discrete Estimator

This methods implements a regularized form of Koopman with Inputs (KIC). It assumes that the input if piecewise constant, zeroing out some of the state + input transform.

TODO: add other ways to implement KIC TODO: sampling period isn’t used

Parameters:
  • observables – function that returns the observables of the system state

  • sampling_period – sampling period of the uniform time, discrete system

  • dim – dimension of the system state

  • rank – rank of the DMDc

  • weights – observation weights (optional)

References

Proctor, J. L., Brunton, S. L., & Kutz, J. N. (2018). Generalizing Koopman theory to allow for inputs and control. SIAM Journal on Applied Dynamical Systems, 17(1), 909-930.

See https://epubs.siam.org/doi/pdf/10.1137/16M1062296 for more details

fit_next_step(X: ndarray, Y: ndarray, U: ndarray | None = None, weights: ndarray | None = None) None#

fits the discrete system model

calls DMDC after building out the observables

property model: System#

packs the learned linear transform into a discrete linear system

autokoopman.estimator.koopman.dmdc(X, Xp, U, r)#

Dynamic Mode Decomposition with Control (DMDC)

DMD but extended to include control.

References

Proctor, J. L., Brunton, S. L., & Kutz, J. N. (2016). Dynamic mode decomposition with control. SIAM Journal on Applied Dynamical Systems, 15(1), 142-161.

See https://arxiv.org/pdf/1409.6358.pdf for more details

autokoopman.estimator.koopman.swdmdc(X, Xp, U, r, Js, W)#

State Weighted Dynamic Mode Decomposition with Control (wDMDC)

autokoopman.estimator.koopman.wdmdc(X, Xp, U, r, W)#

Weighted Dynamic Mode Decomposition with Control (wDMDC)

autokoopman.estimator.sindy module#

Module contents#