Skip to content

Commit

Permalink
Updating the docs for the discrete case
Browse files Browse the repository at this point in the history
  • Loading branch information
pogudingleb committed Nov 16, 2023
1 parent c1f345a commit 58eba85
Showing 1 changed file with 10 additions and 7 deletions.
17 changes: 10 additions & 7 deletions docs/src/tutorials/discrete_time.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
Now we consider a discrete-time model in the state-space form

$\begin{cases}
\mathbf{x}(t + 1) = \mathbf{f}(\mathbf{x}(t), \mathbf{p}, \mathbf{u}(t)),\\
\Delta\mathbf{x}(t) = \mathbf{f}(\mathbf{x}(t), \mathbf{p}, \mathbf{u}(t)),\\
\mathbf{y}(t) = \mathbf{g}(\mathbf{x}(t), \mathbf{p}, \mathbf{u(t)}),
\end{cases}$
\end{cases} \quad \text{where} \quad \Delta \mathbf{x}(t) := \mathbf{x}(t + 1) - \mathbf{x}(t)$

where $\mathbf{x}(t), \mathbf{y}(t)$, and $\mathbf{u}(t)$ are time-dependent states, outputs, and inputs, respectively,
and $\mathbf{x}(t), \mathbf{y}(t)$, and $\mathbf{u}(t)$ are time-dependent states, outputs, and inputs, respectively,
and $\mathbf{p}$ are scalar parameters.
As in the ODE case, we will call that a parameter or a states (or a function of them) is **identifiable** if its value can be recovered from
time series for inputs and outputs (in the generic case, see Definition 3 in [^1] for details).
Expand All @@ -22,9 +22,9 @@ and below we will describe how this can be done.
As a running example, we will use the following discrete version of the [SIR](https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology#The_SIR_model) model:

$\begin{cases}
S(t + 1) = S(t) - \beta S(t) I(t),\\
I(t + 1) = I(t) + \beta S(t) I(t) - \alpha I(t),\\
R(t + 1) = R(t) + \alpha I(t),\\
\Delta S(t) = S(t) - \beta S(t) I(t),\\
\Delta I(t) = I(t) + \beta S(t) I(t) - \alpha I(t),\\
\Delta R(t) = R(t) + \alpha I(t),\\
y(t) = I(t),
\end{cases}$

Expand Down Expand Up @@ -58,7 +58,7 @@ In principle, it is not required to give a name to the observable, so one can wr
assess_local_identifiability(sir; measured_quantities = [I])
```

The `assess_local_identifiability` function has two important keyword arguments:
The `assess_local_identifiability` function has three important keyword arguments:

- `funcs_to_check` is a list of functions for which one want to assess identifiability, for example, the following code
will check if `β * S` is locally identifiable.
Expand All @@ -71,6 +71,9 @@ assess_local_identifiability(sir; measured_quantities = [I], funcs_to_check = [
principle it may produce incorrect result but the probability of correctness of the returned result is guaranteed to be at least `p`
(in fact, the employed bounds are quite conservative, so in practice incorrect result is almost never produced).

- `known_ic` is a list of the states for which initial conditions are known. In this case, the identifiability results will be valid not
at any time point `t` but only at `t = 0`.

As other main functions in the package, `assess_local_identifiability` accepts an optional parameter `loglevel` (default: `Logging.Info`)
to adjust the verbosity of logging.

Expand Down

0 comments on commit 58eba85

Please sign in to comment.