public static double Function(double x)
return (1 - Math.Log(x, Math.E)) / (2 + Math.Log(1 + x * x, Math.E));
public static double LeftRect(double a, double b, int n)
double step = Math.Abs(a - b) / n;
for(int i = 0; i < n - 1; ++i)
sum += Function(a + step * i);
public static double LeftRectIter(double a, double b, double epsilon)
double previousResult = -9999;
while(Math.Abs(result - previousResult) > epsilon)
result = LeftRect(a, b, n);
result = LeftRect(a, b, n);
public static double RightRect(double a, double b, int n)
double step = Math.Abs(a - b) / n;
for(int i = 1; i < n; ++i)
sum += Function(a + step * i);
public static double RightRectIter(double a, double b, double epsilon)
double previousResult = -9999;
while(Math.Abs(result - previousResult) > epsilon)
result = RightRect(a, b, n);
result = RightRect(a, b, n);
public static double MidRect(double a, double b, int n)
double step = Math.Abs(a - b) / n;
for(int i = 0; i < n - 1; ++i)
double fun = ( Function(a + step * i) + Function(a + step * (i + 1))) / 2;
public static double MidRectIter(double a, double b, double epsilon)
double previousResult = -9999;
while(Math.Abs(result - previousResult) > epsilon)
result = MidRect(a, b, n);
result = MidRect(a, b, n);
public static double Trap(double a, double b, int n)
double step = Math.Abs(a - b) / n;
for(int i = 0; i < n - 1; ++i)
double o = Function(x) + Function(x + step);
public static double TrapIter(double a, double b, double epsilon)
double previousResult = -9999;
while(Math.Abs(result - previousResult) > epsilon)
public static void Main()
Console.WriteLine("Метод левых прямоугольников: " + LeftRectIter(1, 2, eps));
Console.WriteLine("Метод правых прямоугольников: " + RightRectIter(1, 2, eps));
Console.WriteLine("Метод средних прямоугольников: " + MidRectIter(1, 2, eps));
Console.WriteLine("Метод трапеций: " + TrapIter(1, 2, eps));