Решение интеграла методом прямоугольников - 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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д