3
$\begingroup$

Consider a system of ODEs

\begin{align} u' = f(u,v)\\ v' = g(u,v) \end{align}

with some unknown parameters in $f$ and $g$, where primes denote time derivatives. No data of $u(t)$ or $v(t)$ are available but there's only data of $v(u)$ points. Is it possible to do the inverse problem of predicting the unknown parameters in $f$ and $g$?

We can also be more specific.

\begin{align} u' = au+bv\\ v' = cu+dv \end{align} with unknown coefficients a~d. Let's use some least squares method for example to do this inverse problem to let the residual^2 of the ODEs approach 0 through iterations.

$\endgroup$
2
  • 3
    $\begingroup$ Consider for example $\dot{u}=\alpha u$, $\dot{v}=\alpha u$; where $\alpha$ is an unknown parameter. Then the integral of motion is $u-v=const$ where the constant depends on the initial conditions but not on the parameter $\alpha$. So, in general the answer is negative, as pointed out by @whpowell96. But tell us more detail, and then we can see; this may be a fun problem! $\endgroup$ Commented Jun 3, 2024 at 15:41
  • 2
    $\begingroup$ You can always write the parameter identification problem as a least squares problem. Whether it allows you to stably recover parameter is of course a different question. $\endgroup$ Commented Jun 4, 2024 at 2:47

3 Answers 3

5
$\begingroup$

$\DeclareMathOperator*{\argmin}{argmin}$

Before you try to solve the inverse problem, you have to address an issue of identifiability. That is, from the observations along $v(u)$, it is impossible to uniquely specify all four of your parameters simultaneously. To see this, notice that the derivative of $v(u)$ can we written as $$ \frac{dv}{du} = \frac{v'}{u'} = \frac{au+bv}{cu+dv} = \left(\frac{a}{c}\right)\frac{u + \left(\frac{b}{a}\right)v}{u + \left(\frac{d}{c}\right)v} = \alpha\frac{u+\beta v}{u+\gamma v}. $$ Therefore, only the ratios $\alpha = a/c$, $\beta = b/a$, and $\gamma = d/c$ are uniquely identifiable from the curve $v(u)$. However, once this has been established, you can apply more standard methods to determine $\alpha$, $\beta$, and $\gamma$ from $v(u)$.

Assume you have a set of $n$ observations $V = (v_1,\dots,v_n)^T$ corresponding to the points $U = (u_1,\dots,u_n)^T$ and write our parameters to be inferred in a vector $q = (\alpha,\beta,\gamma)^T$. Since $u$ is a scalar, we assume these are in increasing order, although it could be done in any order as long as we properly select the initial condition for the above ODE. To select this we can just select the smallest value of $u_i$, supply the initial condition $v(u_i) = v_i$, and integrate with increasing $u$.

Once this has been established, we consider the function $f:\mathbb{R}^3\to\mathbb{R}^n$ given by $f(q) = (v(u_1;q),\dots,v(u_n;q))^T$, where $v(u_i;q)$ is the numerically computed solution of the $dv/du$ ODE with parameters $q = (\alpha,\beta,\gamma)^T$ and initial condition discussed above. With this, we can write the nonlinear least squares problem $$ \begin{aligned} J(q) &= \|V - f(q)\|_2^2 \\ q^* &= \argmin_{q\in\mathbb{R}^3} J(q). \end{aligned} $$ Once we have a routine to compute $J(q)$ (or just $V-f(q)$ depending on the solver used), we can use most unconstrained optimization solvers to find an answer. Note that we don't (and don't want to) compute the gradient of $f$, so we must rely on finite-difference derivatives, which is the default for most general purpose routines. This is done in fminunc and lsqnonlin in MATLAB, and optimize.minimize and optimize.least_squares in SciPy. Alternatively, some languages are able to compute derivatives using adjoints or automatic differentiation, such as in Julia's SciML ecosystem, which was mentioned in another answer, although this allows for finite differences as well.

$\endgroup$
5
$\begingroup$

The problem of finding coefficients $a,b,c,d$ from the trajectory $v(u)$ is ill posed, it is not solvable.

For the linear system of homogeneous equations with constant coefficients,

$ \frac{d}{dt} \vec{f} = M \vec{f}, $

the general solution is

$ \vec{f} (t) = e^{M t} \vec{f}_0 $

where $ \vec{f} = \begin{align} &\begin{bmatrix} u \\ v \\ \end{bmatrix} \end{align} $, $M$ is the matrix of coefficients, and $\vec{f}_0$ is the initial condition.

Scaling the matrix M (i.e., all coefficients a,b,c,d) by some factor $\alpha$, for a given initial condition, will result in the same trajectory in the $(u,v)$ space; it will correspond to going through the same sequence of states with the time scaled by $1/\alpha$.

$\endgroup$
2
  • $\begingroup$ Thanks. In the original question I put a simple example of a linear group of ODEs but my question is more for the purpose of nonlinear ones. $\endgroup$ Commented Jun 24, 2024 at 4:53
  • $\begingroup$ @feynman For nonlinear f,g the given proof shows that in general it is not possible to infer parameters from the trajectory (u,v) because linear f,g is a particular case of nonlinear ones. One could also ask a question: Is it possible to find an example of functions f and g such that the parameters could be inferred from the (u,v) trajectory. Here the answer is positive. $\endgroup$ Commented Jun 24, 2024 at 5:44
2
$\begingroup$

This is a well studied problem with relatively good solvers. That said, there are about a million different methods and which ones work depend on lots of complicated details. For an example of how to solve these sorts of problems, see https://docs.sciml.ai/SciMLSensitivity/stable/tutorials/parameter_estimation_ode/

$\endgroup$
2
  • 2
    $\begingroup$ General purpose parameter estimation techniques such as these require time series, which OP specifically said they do not have. Perhaps you could elaborate on how their problem could made to fit into one of the standard routines or point out which of the routines in the library you cite is well-suited to OP’s specific problem $\endgroup$ Commented Jun 4, 2024 at 15:17
  • $\begingroup$ Thank you. I agree with @whpowell96 that this link in particular relies on time series data. If there is an approach that only relies on the phase plane data rather than time series data, that will resolve my original question $\endgroup$ Commented Jun 24, 2024 at 5:02

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.