Приближенное вычисление интеграла метод Симпсона C#

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

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

Задача: Разработать класс для вычисления определенных интегралов по формуле Симпсона с использование делегатов. Подскажите пожалуйста,что не так в формуле? Задание задали, а данный метод еще не учили
 public delegate double Function(double x);
    class Program
    {
        public static double SimpsonMethod(Function f, double b, double a, int n)
        {
            double sum = 0;
            double h = (b - a) / n;
            for (int i = 0; i < n; i++)
                sum+=(f(a) + f(b) + 4*(f(a+h)+f(a+(i-1)*h))+2*(f(a+2*h)+f(a+(i-2)*h))) * h / 3;
            return sum;
        }
 
        public static double SimpsonMethod_For_x(double x)
        {
            return x;
        }
 
        static void Main(string[] args)
        {
            Function sim = new Function(SimpsonMethod_For_x);
            double a, b;
            int n;
            Console.Write("Нижняя граница интегрирования. a=");
            a = Double.Parse(Console.ReadLine());
            Console.Write("Верхняя граница интегрирования. b=");
            b = Double.Parse(Console.ReadLine());
            Console.Write("Количество отрезков. n=");
            n = int.Parse(Console.ReadLine());
            Console.Write("Интеграл = {0}", SimpsonMethod(sim, b, a, n));
            Console.ReadKey();
        }
    }

Решение задачи: «Приближенное вычисление интеграла метод Симпсона C#»

textual
Листинг программы
sum+=(f(a+h*i)+4f(a+h*(i+0.5))+f(a+h*(i+1))h / 6

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


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

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

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