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
- 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
- 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
- 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)