public static double d5(_function f, double a, double b)
        {
            double z = diff_4(f, a) + diff_4(f, b) + 3 * (f(a) - f(b)) / (b - a);
            double w = Math.Sqrt(z * z - diff_4(f, a) * diff_4(f, b));
            double g = (z + w - diff_4(f, a)) / (diff_4(f, b) - diff_4(f, a) + 2 * w);

            if (g > 1)
            {
                return(b);
            }
            else
            {
                if (g < 0)
                {
                    return(a);
                }
                else
                {
                    return(a + g * (b - a));
                }
            }
        }
 public static double d3(_function f, double a, double b, double c)
 {
     return(b + 0.5 * ((b - a) * (b - a) * (f(b) - f(c)) - (b - c) * (b - c) * (f(b) - f(a))) / ((b - a) * (f(b) - f(c)) - (b - c) * (f(b) - f(a))));
 }
 public static double d4(_function f, double a, double b, double c)
 {
     return(b + 0.5 * ((b - a) * (f(a) - f(c)) / (f(a) - 2 * f(b) + f(c))));
 }
 public static double d1(_function f, double a, double b, double c)
 {
     return(0.5 * (f(a) * (b * b - c * c) + f(b) * (c * c - a * a) + f(c) * (a * a - b * b)) / (f(a) * (b - c) + f(b) * (c - a) + f(c) * (a - b)));
 }
 public static double d2(_function f, double a, double b, double c)
 {
     return(0.5 * (a + b) + 0.5 * ((f(a) - f(b)) * (f(a) - f(b)) * (b - c) * (c - a)) / (f(a) * (b - c) + f(b) * (c - a) + f(c) * (a - b)));
 }
        public static double second_diff_2(_function f, double x)
        {
            double dx = 1e-7;

            return((f(x + 2 * dx) - 2 * f(x) + f(x - 2 * dx)) / (4 * dx * dx));
        }
        public static double diff_4(_function f, double x)
        {
            double dx = 1e-7;

            return((-f(x + 2 * dx) + 8 * f(x + dx) - 8 * f(x - dx) + f(x - 2 * dx)) / (12 * dx));
        }
        public static double diff_3(_function f, double x)
        {
            double dx = 1e-7;

            return((f(x - dx) - 4 * f(x) + 3 * f(x + dx)) / (2 * dx));
        }
        //Производные для одномерных функций
        public static double diff_1(_function f, double x)
        {
            double dx = 1e-7;

            return((f(x + dx) - f(x)) / dx);
        }
 set => SetProperty(ref _function, value);