double b;
            double[] a = new double[4] { -3, 0, 0, 5 };
            b = a[3] - a[0];
            a[1] = a[3] - 0.618 * b;
            a[2] = a[0] + 0.618 * b;
                while (System.Math.Abs((a[1] * a[1] + 2 * a[1]) - (a[2] * a[2] + 2 * a[2])) > 0.01)
                {
                    if ((a[1] * a[1] + 2 * a[1]) < (a[2] * a[2] + 2 * a[2]))
                    {
                        a[3] = a[2];
                        b = a[3] - a[0];
                        a[1] = a[3] - 0.618 * b;
                        a[2] = a[0] + 0.618 * b;
                    }
                    else if ((a[1] * a[1] + 2 * a[1]) < (a[2] * a[2] + 2 * a[2]))
                    {
                        a[0] = a[1];
                        b = a[3] - a[0];
                        a[1] = a[3] - 0.618 * b;
                        a[2] = a[0] + 0.618 * b;
                    }
                }