## 2 Method
### Exact DMD  
The Exact DMD method [5] is briefly introduced here since DMDct relies on that for finding the eigenvalues and reconstructing the data. Given a sequential set of \(m\) data vectors \(\mathbf{z}_{k}\) shown as an \(N\times m\) matrix \(\mathbf{Z}=[\mathbf{z}_{0}\dots\mathbf{z}_{m-1}]\), the exact DMD method gives us the set of \(r\) DMD modes \(\boldsymbol{\phi}_{j}\) and their corresponding eigenvalues \(\lambda_{j}\) (Algorithm 1). The DMD modes and eigenvalues together describe how each vector \(\mathbf{z}_{k-1}\) evolves in time and results in the vector \(\mathbf{z}_{k}\). By showing all DMD modes as  
Figure 1: Schematic representation of the designated structure of the input data of DMDct algorithm where each snapshot \(\mathbf{S}_{k}\) is an \(n_{y}\times n_{x}\) matrix of real values. The randomly-sampled points of each snapshot (colored in gray) are vectorized and represented as a real-valued data vector \(\mathbf{s}_{k}\) of length \(N_{s}\), where \(N_{s}\) is the number of sampling points. The sampling mask remains the same for all snapshots.  
the \(N\times r\) matrix \(\mathbf{\Phi}=\left[\mathbf{\phi}_{1}\dots\mathbf{\phi}_{r}\right]\) and the corresponding eigenvalues as the \(r\times r\) diagonal matrix \(\mathbf{\Lambda}=\text{diag}(\lambda_{1}\dots\lambda_{r})\), exact DMD lets us reconstruct the \(k\)-th vector as  
\[\tilde{\mathbf{z}}_{k}=\mathbf{\Phi}\mathbf{\Lambda}\mathbf{\Phi}^{\dagger}\mathbf{z}_{k-1} \tag{1}\]  
where \(\tilde{\mathbf{z}}_{k}\) is the reconstruction of the vector \(\mathbf{z}_{k}\) and \(\mathbf{\Phi}^{\dagger}\) is the pseudo-inverse of \(\mathbf{\Phi}\). When the DMD modes are independent, the pseudo-inverse of \(\mathbf{\Phi}\) is given as \(\mathbf{\Phi}^{\dagger}=\left(\mathbf{\Phi}^{*}\mathbf{\Phi}\right)^{-1}\mathbf{\Phi}^{*}\) where \({}^{*}\) denotes the conjugate transpose. In such case, each vector \(\mathbf{z}_{k}\) can be reconstructed based on the first vector (\(\mathbf{z}_{0}\)) as  
\[\tilde{\mathbf{z}}_{k}=\mathbf{\Phi}\mathbf{\Lambda}^{k}\mathbf{\Phi}^{\dagger}\mathbf{z}_ {0} \tag{2}\]  
By showing all reconstructed vectors as the matrix \(\tilde{\mathbf{Z}}=\left[\tilde{\mathbf{z}}_{0}\dots\tilde{\mathbf{z}}_{m}\right]\), it can be shown that  
\[\tilde{\mathbf{Z}}=\mathbf{\Phi}\mathbf{D}\mathbf{V},\ \mathbf{D}\triangleq\text{diag}(\mathbf{ \Phi}^{\dagger}\mathbf{z}_{0}) \tag{3}\]  
where \(\mathbf{V}\) is the \(r\times m\)_pseudo-Vandermonde_ matrix of the eigenvalues defined as  
\[\mathbf{V}=\left[\begin{array}{ccccc}1&\lambda_{1}&\lambda_{1}^{2}&\dots& \lambda_{1}^{m-1}\\ \vdots&\vdots&\vdots&\ddots&\vdots\\ 1&\lambda_{r}&\lambda_{r}^{2}&\dots&\lambda_{r}^{m-1}\end{array}\right]_{r \times m} \tag{4}\]  
```
Data: \(\bullet\)\(\mathbf{Z}=\left[\mathbf{z}_{0}\dots\mathbf{z}_{m-1}\right]\): the \(N\times m\) matrix of sequential data vectors \(r\): the number of modes to pick Result: \(\bullet\)\(\mathbf{\Phi}\): the matrix of DMD modes \(\bullet\)\(\mathbf{\lambda}\): the vector of DMD eigenvalues Find the SVD of \(\mathbf{X}=\left[\mathbf{z}_{0}\dots\mathbf{z}_{m-2}\right]\) such that \(\mathbf{X}=\mathbf{U}\mathbf{\Sigma}\mathbf{V}^{*}\);  Truncate \(\mathbf{U}\) to the first \(r\) columns;  Truncate \(\mathbf{\Sigma}\) to the upper-left \(r\times r\) matrix;  Truncate \(\mathbf{V}^{*}\) to the first \(r\) rows;  Define \(\tilde{\mathbf{A}}\triangleq\mathbf{U}^{*}\mathbf{Y}\mathbf{\Sigma}^{-1}\) where \(\mathbf{Y}=\left[\mathbf{z}_{1}\dots\mathbf{z}_{m-1}\right]\);  Find the eigenvalues \(\mathbf{\lambda}\) and eigenvectors \(\mathbf{W}\) of \(\tilde{\mathbf{A}}\), i.e., \(\tilde{\mathbf{A}}\mathbf{W}=\mathbf{W}\,\text{diag}(\mathbf{\lambda})\);  Compute the DMD modes \(\mathbf{\Phi}\triangleq\mathbf{Y}\mathbf{\Sigma}^{-1}\mathbf{W}\); return\(\mathbf{\Phi}\), \(\mathbf{\lambda}\)
```  
**Algorithm 1**The overall procedure of Exact DMD algorithm.