Решение интеграла методом прямоугольников - C#
Формулировка задачи:
Помогите, пожалуйста, улучшить программу.Вся проблема в том, что если задать количество прямоугольников больше 25,то программа выдаёт NaN.Число PI является решением интеграла.
Листинг программы
- //метод средних прямоугольников
- //h-высота,s-вся площадь,k-точность,n-количество прямоугольников,f-функция
- double a=0, b=2, h, s=0, n, k, f;
- Console.WriteLine("Введите количество прямоугольников");
- n = double.Parse(Console.ReadLine());
- h = (b - a) / n;
- for (double x1=0,x=a;x<=b;x+=h)
- {
- if (x < b)
- {
- x1 = x + h / 2;
- f = Math.Pow(x1, 2) * Math.Sqrt(4 - x1 * x1);
- s +=f;
- }
- }
- k = Math.Abs(Math.PI-s*h);
- Console.WriteLine("**********************************");
- Console.WriteLine("Данный интеграл равен: {0:0.0000}", s*h);
- Console.WriteLine();
- Console.WriteLine("Точность вычисления: {0:0.0000}",k);
- Console.ReadKey();
Решение задачи: «Решение интеграла методом прямоугольников»
textual
Листинг программы
- double a = 0, b = 2, h, s = 0, n, k, f;
- Console.WriteLine("Введите количество прямоугольников");
- n = double.Parse(Console.ReadLine());
- h = (b - a) / n;
- for (double x1 = 0, x = a; x <= b; x += h)
- {
- if (x < b)
- {
- x1 = x + h / 2;
- if (x1 >= 2)
- continue;
- f = Math.Pow(x1, 2) * Math.Sqrt((4 - x1 * x1));
- s += f;
- }
- }
- k = Math.Abs(Math.PI - s * h);
- Console.WriteLine("**********************************");
- Console.WriteLine("Данный интеграл равен: {0:0.0000}", s * h);
- Console.WriteLine();
- Console.WriteLine("Точность вычисления: {0:0.0000}", k);
- Console.ReadKey();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д