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