TikhonovFenichelReductions.jl

A Julia implementation of the algebraic approach to timescale separation (slow-fast dynamics) described in [13]. This allows to find all critical parameters, so-called Tikhonov-Fenichel Parameter Values (TFPVs), together with their slow manifolds and the computation of the corresponding reductions for ODE system with polynomial right-hand side.

An example showcasing the package and some explanations of the procedures can be found in [4].

Overview

The general framework for this package is singular perturbation theory. More precisely, we consider a system of ODEs in the form

\[\dot{x} = f(x,\pi) = f^{(0)}(x,\pi) + \varepsilon f^{(1)}(x,\pi) + \mathcal{O}(\varepsilon^2), \]

where $x\in U \subseteq\mathbb{R}^n$, $\pi\in\Pi\subseteq\mathbb{R}^m$, $f \in \mathbb{R}[x,\pi]$ is polynomial and $\varepsilon \geq 0$ is a small parameter. Due to [13] we can compute the reduction for this system, i.e. its limit for $\varepsilon \to 0$, in the sense of Tikhonov [5] and Fenichel [6] using methods from commutative algebra and algebraic geometry. Note that this yields all possible timescale separations of rates and not just components as in the classical approach. Thus, this is a coordinate-independent approach to geometric singular perturbation theory.

TikhonovFenichelReductions.jl provides procedures for finding all possible TFPV candidates that yield a reduction in the sense of Tikhonov's theorem (see [7]) and functions to simplify the computation of the corresponding reduced systems.

Finding TFPV Candidates

To find TFPV candidates admitting a reduced system of dimension $s$, one needs to create an instance of type ReductionProblem holding all relevant information. Then, there are two different approaches (see Getting Started for a practical discussion).

Slow-Fast Separations

A slow-fast separation of rates with base parameters $\pi_i$ is defined by an index set $S\subset\{1,\dots,m\}$, $S\neq\emptyset$, where $(\pi_i)_{i\in S}$ are the small parameters corresponding to slow processes. We always denote a slow-fast separation of rates by $\tilde\pi=\tilde\pi(\varepsilon,\pi)$ with

\[\tilde\pi_i := \begin{cases} \varepsilon \pi_i & i \in S \\ \pi_i & i \in S^\complement \end{cases}\]

or $\pi^\star := \tilde\pi(0,\pi)$. Thus, we have $f^{(0)}=f(\cdot,\pi^\star)$.

Most TFPVs we are interested in are of this type, because they directly relate to a slow-fast separation of processes. However, there might exist TFPVs that are characterized by more complicated expressions in the original parameters being small (see the next section).

The function tfpvs_and_varieties yields all slow-fast separations of rates that are TFPVs and the corresponding varieties $\mathcal{V}(f^{(0)})$. Roughly speaking, this method checks for all possible slow-fast separations of rates $\pi^\star$ whether there exists an irreducible component of $\mathcal{V}(f^{(0)})$ with the desired dimension $s$, since these correspond to the potential slow manifolds on which a reduction is defined. Additionally, we use a condition on the Jacobian $D_1f^{(0)}$ to filter out potential candidates. Afterwards, it only remains to check whether the slow manifold can be given in parameterized form as a subset of $\mathbb{R}^n$. With this, one can then compute the reduced system.

All TFPVs

To get all possible TFPVs $\pi'$, we consider necessary conditions concerning $D_1 f$ and $f$ – namely the existence of a point $x_0\in\mathbb{R}^n$ for which $f(x_0,\pi')$ and the determinants of each $k\times k$ minor of $D_1 f(x_0,\pi')$ vanish for $k>n-s$. Let $I$ be the ideal generated by these polynomial expressions. Then, all TFPVs are contained in $\mathcal{V}(I)$ taken in $\mathbb{R}^m$.

There might be several slow manifolds for each $\pi'$, wherefore we only consider conditions for the parameters and not the state variables $x$. For this, we compute the elimination ideal $I_{\pi}:=I\cap\mathbb{R}[\pi]$. Given a Gröbner basis $G$ of $I$ w.r.t. an elimination ordering for $x$, $I_{\pi}$ is generated by $G\cap\mathbb{R}[\pi]$, i.e. all polynomials in $G$ not containing the state variables $x$. Then, every TFPV must result in the vanishing of each polynomial in $G\cap\mathbb{R}[\pi]$, because one always has $\mathcal{V}(I) \subseteq \mathcal{V}(I_{\pi})$. Thus, we may obtain more complicated expressions in the original parameters that can be considered small (instead of just slow-fast separations of rates).

$G\cap\mathbb{R}[\pi]$ can be computed by calling tfpvs_groebner. Given a TFPV defined by some expressions, one can rewrite the original system with a new parameter equal to this expression, which makes it a slow-fast separation of rates. Then, the approach discussed above becomes applicable allowing us to compute the reduced system.

Computing a Reduced System

To compute a reduced system, there must exist a non-singular point $x_0\in\mathcal{V}(f^{(0)})$, such that the irreducible component of $\mathcal{V}(f^{(0)})$ containing $x_0$ has dimension $s$. Let $r=n-s$. We need to find a product decomposition for $f^{(0)}$, i.e. $\psi(x)\in\mathbb{R}[x]^{r\times1}$ and $P(x)\in\mathbb{R}(x)^{n\times r}$ admitting

\[f^{(0)}(x) = P(x)\psi(x)\]

in an open Zariski neighbourhood $\mathcal{U}_{x_0}$, such that $\textup{rank}\;P(x_0) = \textup{rank}\;D\psi(x_0) = r$ and

\[\mathcal{V}(f^{(0)}) \cap \mathcal{U}_{x_0} = \mathcal{V}(\psi) \cap \mathcal{U}_{x_0}.\]

Then, the reduced system in the sense of Tikhonov is given as

\[\dot{x} = \left[1_n - P(x)(D\psi(x)P(x))^{-1}D\psi(x)\right] f^{(1)}(x)\]

Dependencies

This packages relies on Oscar.jl.

License

GNU GENERAL PUBLIC LICENSE, Version 3 or later (see LICENSE)