The Euler method is asymmetric in time, since it uses information about the derivative at the beginning of the time interval. This means that we evaluate the position at y^{(1)}_1 using the velocity at y^{(2)}_0=v_0 . A simple variation is to determine y^{(1)}_{n+1} using the velocity at y^{(2)}_{n+1} , that is (in a slightly more generalized form) \begin{equation} y^{(1)}_{n+1}=y^{(1)}_{n}+h y^{(2)}_{n+1}+O(h^2) \tag{20} \end{equation} and \begin{equation} y^{(2)}_{n+1}=y^{(2)}_{n}+h a_{n}+O(h^2). \tag{21} \end{equation} The acceleration a_n is a function of a_n(y^{(1)}_{n}, y^{(2)}_{n},t) and needs to be evaluated as well. This is the Euler-Cromer method.