Given a set of ODE's $ \dot{z} = f(z) $ (or discrete time $ z_{t+1} = f(z_t) $), is there a way to numerically find constants of motion?For $ f(z_t) \approx M z_t $, diagonalizing the matrix $ M $ and finding eigenvalues equal to 1 works, but this only finds linear combinations of $ z $ that are constant. I would like to find things like radius, energy, and momentum.I am specifically interested in constants of motion as I integrate Lie groups.EDIT:Just to clarify, a constant of motion, at least for the sake of this questions, is defined as,\begin{align}f: \mathbb{R}^n \rightarrow \mathbb{R} \\\text{s.t.}~~\frac{d}{dt} f(z(t)) = 0\end{align}So, for a given trajectory $ z(t) $, we would expect perhaps multiple constants of motion $ f_i(z(t)) $, but I would like to find constants of motion $ f_i $ such that they are constant for all possible trajectories.\begin{align}\frac{d}{dt} f_i(z(t; z_0^{(k)})) = 0 ~~ \forall z_0^{(k)} \in \mathbb{R}^n\end{align}
Numerically finding constants of motion
computational physics;differential equations