static void Main(string[] args)
        {
            double[] y0  = { 1, 0, 0, 0, 1, 0 };
            double[] x   = { 0 * 0.78539816339, 1 * 0.78539816339, 2 * 0.78539816339, 3 * 0.78539816339, 4 * 0.78539816339 };
            ODE      ode = new ODE(y0, 6, x, 1e-9, 0, allvals: true);

            ode.RKF45(centralForce, null);
            for (int i = 0; i < ode.xlist.Count; i++)
            {
                Console.Write(ode.xlist[i]);
                if (i != ode.xlist.Count - 1)
                {
                    Console.Write(", ");
                }
            }
            Console.Write("\n");
            for (int i = 0; i < ode.ylist.Count; i++)
            {
                for (int j = 0; j < 6; j++)
                {
                    Console.Write(ode.ylist[i][j]);
                    if (j != 5)
                    {
                        Console.Write(", ");
                    }
                }
                Console.Write("\n");
            }
        }