Решение интеграла методом прямоугольников - C#

Узнай цену своей работы

Формулировка задачи:

Помогите, пожалуйста, улучшить программу.Вся проблема в том, что если задать количество прямоугольников больше 25,то программа выдаёт NaN.Число PI является решением интеграла.
Листинг программы
  1. //метод средних прямоугольников
  2. //h-высота,s-вся площадь,k-точность,n-количество прямоугольников,f-функция
  3. double a=0, b=2, h, s=0, n, k, f;
  4. Console.WriteLine("Введите количество прямоугольников");
  5. n = double.Parse(Console.ReadLine());
  6. h = (b - a) / n;
  7. for (double x1=0,x=a;x<=b;x+=h)
  8. {
  9. if (x < b)
  10. {
  11. x1 = x + h / 2;
  12. f = Math.Pow(x1, 2) * Math.Sqrt(4 - x1 * x1);
  13. s +=f;
  14. }
  15. }
  16. k = Math.Abs(Math.PI-s*h);
  17. Console.WriteLine("**********************************");
  18. Console.WriteLine("Данный интеграл равен: {0:0.0000}", s*h);
  19. Console.WriteLine();
  20. Console.WriteLine("Точность вычисления: {0:0.0000}",k);
  21. Console.ReadKey();

Решение задачи: «Решение интеграла методом прямоугольников»

textual
Листинг программы
  1.             double a = 0, b = 2, h, s = 0, n, k, f;
  2.             Console.WriteLine("Введите количество прямоугольников");
  3.             n = double.Parse(Console.ReadLine());
  4.             h = (b - a) / n;
  5.             for (double x1 = 0, x = a; x <= b; x += h)
  6.             {
  7.                 if (x < b)
  8.                 {
  9.                     x1 = x + h / 2;
  10.                     if (x1 >= 2)
  11.                         continue;
  12.                     f = Math.Pow(x1, 2) * Math.Sqrt((4 - x1 * x1));
  13.                     s += f;
  14.                 }
  15.  
  16.             }
  17.             k = Math.Abs(Math.PI - s * h);
  18.             Console.WriteLine("**********************************");
  19.             Console.WriteLine("Данный интеграл равен: {0:0.0000}", s * h);
  20.             Console.WriteLine();
  21.             Console.WriteLine("Точность вычисления: {0:0.0000}", k);
  22.             Console.ReadKey();

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


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

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

12   голосов , оценка 4.083 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы