Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update README.md #12

Merged
merged 1 commit into from
Aug 12, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# pydmdstats

[Askham et al.](https://epubs.siam.org/doi/abs/10.1137/M1124176) introduced the
variable projection for the Dynamic Mode Decomposition (DMD).\
variable projection for Dynamic Mode Decomposition (DMD).\
This repository compares two implementations of the variable projection method for
DMD ([BOPDMD](https://github.com/PyDMD/PyDMD/blob/master/pydmd/bopdmd.py) originally
introduced by [Sashidar and Kutz](https://royalsocietypublishing.org/doi/abs/10.1098/rsta.2021.0199),
Expand All @@ -22,7 +22,7 @@ resources.
The easiest way to run the scripts is to use
[VSCode's devcontainer capability](https://code.visualstudio.com/docs/devcontainers/containers).
The project was tested on Ubuntu 22.04 (which also served as a host system for
the devcontainers) with the Python3.11 and Python3.12 interpreter.
the dev containers) with the Python3.11 and Python3.12 interpreters.

### Ubuntu 22.04

Expand Down Expand Up @@ -96,8 +96,8 @@ visualize_stats -p output/lm/MRSE_highdim_100_linear.pkl

Here is a visualization of how the QR decomposition with Column Pivoting
(greedily) selects samples of a spatiotemporal signal\
in the original (highdimensional) space. The spatiotemporal signal is also utilized
in the experiments (cf. section **Spatiotemporal Dyamics**).
in the original (high-dimensional) space. The spatiotemporal signal is also utilized
in the experiments (cf. section **Spatiotemporal Dynamics**).

Within the experiments, the library selection in general is performed in the
_projected_\
Expand All @@ -124,15 +124,15 @@ optimization.
## Results

All experiments consider different compressions and varying (zero-mean Gaussian)
noise corruption with standard deviation
noise corruption with a standard deviation
$\sigma_{std} \in \{0.0001, 0.001, 0.01\}$.\
Each experiment is executed 100 times. The optimization is performed in the projected
(low-dimensional) space. The parameters used for the experiments are the default
values of the different scripts (`run_mrse, run_ssim`).\
Depending on the experiment either the mean/expected mean root squared error
($E\left[d\right]$) or the mean/expected Structural Similarity Index
($E\left[SSIM\right]$) is computed.\
For $E\left[d\right]$ a low runtimes and a low error is desired. For $E\left[SSIM\right]$
For $E\left[d\right]$ a low runtimes and a low error are desired. For $E\left[SSIM\right]$
a value close to 1 is desired, while also having a low expected runtime.

### Spatiotemporal Dynamics
Expand All @@ -146,14 +146,14 @@ f\left(x, t\right) = \frac{1}{\cosh\left(x + 3\right)}\exp\left(j2.3t\right) + \

| ![spatiotemporal_stats](./figures/highdim_stats.png) |
| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| _Spatiotemporal Signal experiment: Expected runtime for BOPDMD and VarProDMD. Dashed ellipse indicate error- and time covariance. A dashed line is a collapsed ellipse. In this case only the execution times vary. VarProDMD uses Trust Region Optimization (TRF) during the experiment._ |
| _Spatiotemporal Signal experiment: Expected runtime for BOPDMD and VarProDMD. A dashed ellipse indicates error- and time covariance. A dashed line is a collapsed ellipse. In this case, only the execution times vary. VarProDMD uses Trust Region Optimization (TRF) during the experiment._ |

### Oscillations

The oscillation experiment (taken from
[here](https://github.com/PyDMD/PyDMD/blob/master/tutorials/tutorial2/tutorial-2-adv-dmd.ipynb))
consists of $64$ _complex_ $128 \times 128 px$ images.\
Formula for generating the time dependent complex images:
The formula for generating the time-dependent complex images:

```math
f\left(x,y,t\right) = \frac{2}{\cosh{\left(x\right)}\cosh{\left(y\right)}} 1.2j^{-t}
Expand All @@ -178,7 +178,7 @@ $128 \times 128 px$ images.\
The formula for generating the images was taken from [here](https://epubs.siam.org/doi/abs/10.1137/15M1023543):

```math
f\left(x, y\right) = \Psi_1\left(x, y\right) + \Psi_2\left(x, y\right), \Psi_i = \exp{\left(-\sigma\left(\left(x - x_{c,i}\right)^2 + \left(y - y_{c,i}\right)\right)\right)}
f\left(x, y\right) = \Psi_1\left(x, y\right) + \Psi_2\left(x, y\right), \Psi_i = \exp{\left(-\sigma\left(\left(x - x_{c,i}\right)^2 + \left(y - y_{c,i}\right)\right)\right)^2}
```

| ![moving_points](./figures/moving_points.png) |
Expand Down
Loading