TikhonovFenichelReductions.jl

A Julia package for finding Tikhonov-Fenichel Parameter Values (TFPVs) for polynomial ODE systems and computing the corresponding reductions as described in [13].

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, \varepsilon) = 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. The results from [13] allow us to compute a reduced system for $\varepsilon \to 0$ in the sense of Tikhonov [4] and Fenichel [5] using methods from commutative algebra and algebraic geometry. 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 [6]) and functions to simplify the computation of the corresponding reduced systems. Note that this approach yields all possible timescale separations of rates and not just components as in the classical approach.

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 checks for all possible slow-fast separations of rates $\pi^\star$ whether there exists an irreducible component of $\mathcal{V}(f^{(0)})$ with 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 determinant 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$.

Note that the affine variety of an ideal is the same as the variety of any generating set of $I$. Therefore we can consider properties of $I$ instead of the original polynomial conditions (one can think of $I$ as the set of polynomial consequences of its generators).

There might be several slow manifolds for each $\pi'$, wherefore we only consider conditions for the parameters. To do this, we compute the elimination ideal $I\cap\mathbb{R}[\pi]$. Given a Gröbner basis $G$ of $I$ w.r.t. an elimination ordering for $x$, the elimination ideal 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 the set $G\cap\mathbb{R}[\pi]$, because one always has $\mathcal{V}(I) \subseteq \mathcal{V}(I\cap\mat{R}[\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$. We define $r=n-s$. Then, one needs to find a product decomposition, i.e. $\psi(x)\in\mathbb{R}(x)^{r\times1}$ and $P(x)\in\mathbb{R}^{n\times r}$ admitting

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

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}\]

for an open Zariski neighbourhood $\mathcal{U}_{x_0}$. Then, the reduced system in the sense of Tikhonov is given as

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

The procedures to compute a reduced system with TikhonovFenichelReductions.jl are demonstrated in the Getting Started section.

Dependencies

This packages relies on Oscar.jl.

License

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