Решение интеграла методом прямоугольников - 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();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5
Похожие ответы