using System;
public class Program
{
public const double delta = 0.618;
public const double betta = 0.382;
static double func(double x)
return 2 * Math.Pow(x,4) - Math.Pow(x,2) - 10;
}
public static void Main()
double a = -20, b = 20;
double eps = 0.1;
Console.WriteLine("f(min) = " + FindMin(a,b,eps));
Console.WriteLine("f(max) = " + FindMax(a,b,eps));
static double FindMin(double a, double b, double eps)
int iteration = 0;
while(true)
iteration ++;
double x1,x2;
x1 = delta * a + betta * b;
x2 = betta * a + delta * b;
if(func(x1) >= func(x2))
a = x1;
else
b = x2;
if(Math.Abs(b - a) < eps)
break;
return (a + b) / 2;
static double FindMax(double a, double b, double eps)
if(func(x1) <= func(x2))