LLNL / libROM

Model reduction library with an emphasis on large scale parallelism and linear subspace methods
https://www.librom.net
Other
197 stars 36 forks source link

dmd prediction of initial condition #210

Open gokhalen opened 1 year ago

gokhalen commented 1 year ago

My DMD code seems to be working, but it seems to make a large error at the starting time. Shouldn't DMD be able to reproduce the initial condition exactly? Looking at

https://www.librom.net/features.html

I can see the last equation in the DMD section

$$ \mathbf{u}(t) = \mathbf{\Phi\Lambda}^{{t}/{\Delta t}}\mathbf{b}_0 $$

using $\mathbf{b}_0=\mathbf{\Phi}^\dagger\mathbf{u}_0$ we get

$$ \mathbf{u}(t) = \mathbf{\Phi\Lambda}^{{t}/{\Delta t}}\mathbf{\Phi}^\dagger\mathbf{u}_0 $$

At $t=0$ we have $\mathbf{\Lambda}^{{t}/{\Delta t}}=\mathbf{1}$ and hence,

$$ \mathbf{u}(0) = \mathbf{\Phi}\mathbf{\Phi}^\dagger\mathbf{u}_0 $$

Since $\mathbf{\Phi}\mathbf{\Phi}^\dagger=\mathbf{1}$ we get

$$ \mathbf{u}(0)=\mathbf{u}_0 $$

Hence, the initial condition is faithfully reproduced. Is my understanding correct?

gokhalen commented 1 year ago

Perhaps $\mathbf{\Phi}\mathbf{\Phi}^\dagger=\mathbf{1}$ is not always true - see this.

siuwuncheung commented 1 year ago

Hi @gokhalen . Thanks for your question. You are correct about $\mathbf{\Phi}\mathbf{\Phi}^\dagger\neq\mathbf{1}$ in general. In fact, it is the orthogonal projection onto the column space of $\mathbf{\Phi}$. The sufficient and necessary condition of $\mathbf{u}(0) = \mathbf{u}_0$ is $\mathbf{u}_0$ is in the column space of $\mathbf{\Phi}$, i.e. can be written as a linear combination of the columns of $\mathbf{\Phi}$. In particular, if $\mathbf{\Phi}\mathbf{\Phi}^\dagger\neq\mathbf{1}$, then the column space of $\mathbf{\Phi}$ is the whole state space.