Skip to content

Commit

Permalink
typo fix and added image
Browse files Browse the repository at this point in the history
  • Loading branch information
FHoltorf committed May 25, 2022
1 parent 96b2070 commit e83b878
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 7 deletions.
20 changes: 13 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,19 @@ $$
\frac{dY}{dt}(t) \in \mathcal{T}_{\mathcal{M}_r}(Y(t)) \text{ s.t. } \left\| \frac{dY}{dt}(t) - F(Y(t),t) \right\|_F \to \min
$$

Here, $\mathcal{T}_{\mathcal{M}_r}(Y(t))$ refers to the tangent space of the manifold of real $n\times m$ matrices of rank $r$ at the point $Y(t)$.
Here, $\mathcal{T}_{\mathcal{M}_r}(Y(t))$ refers to the tangent space of the manifold of real $n\times m$ matrices of rank $r$ at the point $Y(t)$. In other words, $Y(t)$ is evolved according to the dynamics

$$
\frac{dY}{dt}(t) = \Pi_{\mathcal{T}_{\mathcal{M}_r}(Y(t))} F(Y(t),t).
$$

<center> <img src = "docs/assets/DLRA_geometry.png" alt = "logo" width = 400/> </center>

## Example applications
While seemingly abstract at first, the solution of exceedingly large matrix-valued ODEs is quite a common problem. In the following we briefly discuss two general applications.

### Time series data compression
Given stream of data as described by a function $A:[t_0,t_f] \to \mathbb{R}^{n\times m}$ mapping time point to a data matrix (think of a stream of images forming a movie) we may consider the problem of compressing this data stream. This can be cast as solving a matrix valued ODE
Given a stream of data as described by a function $A:[t_0,t_f] \to \mathbb{R}^{n\times m}$ mapping time point to a data matrix - for example a movie - we may consider the problem of compressing this data stream. This can be cast as solving a matrix-valued ODE

$$
\frac{dX}{dt}(t) = \frac{dA}{dt}(t), \ X(0)= A(0), \text{ for all } t\in [t_0, t_f].
Expand All @@ -41,7 +47,7 @@ $$
\frac{dx}{dt}(p;t) = f(x(p;t),p, t), \ x(p;0) = x_0(p), \text{ for all } t\in[t_0, t_f]
$$

one often wishes to understand the parametric dependence of its solution. Arguably the simplest approach to this problem is sampling, where the ODE is simply evaluated for $m$ parameter values $p_1, \dots, p_m$. In many cases, however, it may be exceedingly expensive to evaluate the above ODE $m$ times, in particular when the dimension $n$ of the state is large. In those cases, DLRA may provide a means to recover tractability of the sampling procedure at the cost of approximation. To see this, note that the solution of the sampling procedure may be arranged in a $n\times m$ matrix
one often wishes to understand the parametric dependence of its solution. Arguably the simplest approach to this problem is sampling, where the ODE is simply evaluated for $m$ parameter values $p_1, \dots, p_m$. In many cases, however, it may be exceedingly expensive to evaluate the above ODE $m$ times, in particular when the dimension $n$ of the state is large. In those cases, DLRA may provide a means to recover tractability of the sampling procedure at the cost of some amount of approximation. To see this, note that the solution of the sampling procedure may be arranged in a $n\times m$ matrix

$$
X(t) := \begin{bmatrix}x(p_1;t) & \cdots & x(p_m;t) \end{bmatrix}
Expand All @@ -53,13 +59,13 @@ $$
F(X(t),t) := \begin{bmatrix}f(x(p_1;t),p_1,t) & \cdots & f(x(p_m;t), p_m, t) \end{bmatrix}.
$$

Note further that applying DLRA to this problem is equivalent to a quite intuitive function expansion strategy which forms the basis of other uncertainty quantification methods such as polynomial chaos expansion. In particular, the use of DLRA can be viewed as the discrete analog of applying the following expansion Ansatz to the parametric solution $x(p;t)$:
Note further that applying DLRA to this problem can be viewed as applying a quite intuitive function expansion strategy to express the parametric solution $x(p;t)$. Similar strategies form the basis of other uncertainty quantification methods such as polynomial chaos expansion. In particular, the use of DLRA can be viewed as the discrete analog of applying the following expansion Ansatz to the parametric solution $x(p;t)$:

$$
x(p;t) \approx \sum_{i=1}^r u_i(t) z_i(p;t)
$$

where the expansion modes $u_i(t)$ are chosen in a certain sense optimally.
where, in contrast to other methods, the expansion modes $u_i(t)$ are allowed to vary over time rendering this Ansatz strictly more expressive than classical Ansätze.

## Primitives
LowRankIntegrators.jl relies on a handful of primitives to enable the non-intrusive use of DLRA. These are described below.
Expand All @@ -74,14 +80,14 @@ $$
to be approximately solved via DLRA, the problem shall be set up as `MatrixDEProblem(F,Y0,tspan)` where

* `F` is the right-hand-side of the matrix ODE. `F` must accept two arguments, the first one being the (matrix-valued) state and the second time (or appropriate independent variable).
* `Y0` is a low rank approximation of the initial condition. The rank of `Y0` determines the rank of the approximation unless a rank-adaptive integrator is used.
* `Y0` is a low rank approximation of the initial condition. The rank of `Y0` determines the rank of the approximation unless a rank-adaptive integrator is used. `Y0` is to be of type `SVDLikeRepresentation` (see LowRankArithmetic.jl for details).
* `tspan` is a tuple holding the initial and final time for integration.

### MatrixDataProblem
If a data stream (or discrete sequence of data snapshots) is to be compressed via DLRA, then additional structure can be exploited. In this case, the problem shall be defined as `MatrixDataProblem(A,Y0,tspan)` where

* `A` is a function that describes the data stream, i.e., `A(t)` returns the data snapshot at time `t`.
* `Y0` is a low rank approximation of the initial data point `A(0)`. The rank of `Y0` determines the rank of the approximation unless a rank-adaptive integrator is used.
* `Y0` is a low rank approximation of the initial data point `A(0)`. The rank of `Y0` determines the rank of the approximation unless a rank-adaptive integrator is used. `Y0` is to be of type `SVDLikeRepresentation` (see LowRankArithmetic.jl for details).
* `tspan` is a tuple holding the initial and final time for integration.

If the data stream is not available continuously, but instead in form of discrete (time-ordered) snapshots, the problem shall be defined as `MatrixDataProblem(A,Y0,tspan)` where
Expand Down
Binary file added docs/assets/DLRA_geometry.pdf
Binary file not shown.
Binary file added docs/assets/DLRA_geometry.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit e83b878

Please sign in to comment.