Recovering non-linear 1.order ODE from its solution Let's assume we are given a non-linear first order ODE in $n$-dimensions in $\mathbb{R}^n$ or some open subset:
$\begin{matrix} \dot { { x }_{ 1 } }  & = & f_{ 1 }(x_{ 1 },...,x_{ n }) \\ \vdots  &  &  \\ \dot { { x }_{ n } }  & = & f_{ n }(x_{ 1 },...,x_{ n }) \end{matrix}$
Further we assume that we know a solution $\gamma(x_0,t):\mathbb{R}^n \rightarrow \mathbb{R}^n$ for an initial condition $x_0$.
Is there a way to reconstruct in general the form of the ODE, i.e. the functions $f_i,\ i=1,...,n$ ?

I am aware of a solution for linear ODEs. I also assume there is no unique solution to the problem. If this is the case I am interested in finding all possible ODEs which could belong to the given solution.
 A: Well, in a local set up, you need to know the general solution, that is, $\gamma(x_0,t)$ for any $x_0=(c_1,\ldots,c_n)\in \mathbb{R}^n$. Alternatively, you can have $\gamma$ depending on another set of "equivalent" constants.
Suppose
$$
\gamma((c_1,\ldots,c_n),t)=(x_1((c_1,\ldots,c_n),t)\ldots,x_n((c_1,\ldots,c_n),t)).
$$
You only need to define
$$
\varphi: ((c_1,\ldots,c_n),t)\to (t,x_1,\ldots,x_n)
$$
and compute $\varphi^{-1}$. Then, you compute the pushforward of $\partial_t$:
$$
A:=\varphi_*(\partial_t)
$$
(observe that you need $\varphi^{-1}$ to calculate the components).
This vector field $A$ is
$$
A=\partial_t+f_1 \partial_{x_1}+f_2 \partial_{x_2}+\ldots+f_n \partial_{x_n},
$$
being $f_i$ your desired functions. Observe that depending on the expressions of the solution, the system could be non-autonomous, i.e., $f_i$ can depend on $t$.
Here you have a Maple code to compute the ODE system from a solution:
restart; 
with(DifferentialGeometry); with(JetCalculus); with(Tools); with(ExteriorDifferentialSystems); with(PDEtools); with(LieAlgebras); with(LinearAlgebra); with(DEtools); with(Student[LinearAlgebra]); 

DGsetup([s, c1, c2, c3, c4], M1); 
baseformas1 := Tools:-DGinfo(M1, "FrameJetForms"); 
basecampos1 := Tools:-DGinfo(M1, "FrameJetVectors"); 

DGsetup([t, x, y, z, w], M2); 
baseformas2 := Tools:-DGinfo(M2, "FrameJetForms"); 
basecampos2 := Tools:-DGinfo(M2, "FrameJetVectors");

xsol := (c1*s+c2)/(s-c3); 
ysol := c2/(c4-s);
zsol := (c4*s+c3)/s; 
wsol := c4/s+c1;

phi := Transformation(M1, M2, [t = s, x = xsol, y = ysol, z = zsol, w = wsol]); 
invphi := InverseTransformation(phi);

A := simplify(Pushforward(phi, invphi, basecampos1[1]));


I have to say that if you have only one particular solution you can add to it enough constants to create a family of solutions as above, whenever these constants are "suficientely independent". Then your solution will be a solution of the just created ODE system.
A: I think the problem is not that simple so that we only have to look at the dimensions of the system. Take in $1D$ the solution $$\tag{1}\gamma(1,t)=\frac{1}{t}\,\,,\quad t\in(0,+\infty)\,.$$ It solves the ODE $\dot\gamma=-\gamma^2\,.$ Which we can write as $\dot\gamma=f(\gamma)$ with $f(x)=-x^2\,.$ This $f$ is an even function that is defined on the whole of $\mathbb R$ but the particular solution (1) does clearly not care when we modify $f$ on $(-\infty,0]\,.$ In other words:

*

*For any function $g$ on $\mathbb R$ that agrees with $f(x)=-x^2$ on $(0,+\infty)$ the function (1) is a solution of the ODE $\dot\gamma=g(\gamma)\,.$
I think the problem you are considering has to do with the range of $\gamma$ and with the connectedness of the domain of $f\,.$
