Интегрирование методом Симпсона. Обобщение - C#
Формулировка задачи:
Есть код для решения интеграла методом Симпсона функции f(x)
Помогите организовать работу если функций несколько f1(x), f2(x)...fn(x)
static double f(double x)
{
return x*x+2*x;
}
static double Simpson(double n) //Интегрирование по методу Симпсона
{
double x, a, b, h, s;
a = 0;
b = 0.5;
h = (b - a) / n;
s = 0;
x = a + h;
while (x < b)
{
s = s + 4 * f(x);
x = x + h;
s = s + 2 * f(x);
x = x + h;
}
s = h / 3 * (s + f(a) - f(b));
Console.WriteLine(" Интеграл(Метод Симпсона) = " + s);
double Simpson = s;
return Simpson;
}
static void Main(string[] args)
{
}
}
}Решение задачи: «Интегрирование методом Симпсона. Обобщение»
textual
Листинг программы
static double f(double x)
{
return x * x + 2 * x;
}
static double Simpson(Func<double,double> func,double n)//Интегрирование по методу Симпсона
{
double x, a, b, h, s;
a = 0;
b = 0.5;
h = (b - a) / n;
s = 0;
x = a + h;
while (x < b)
{
s = s + 4 * func(x);
x = x + h;
s = s + 2 * func(x);
x = x + h;
}
return h / 3 * (s + func(a) - func(b));
}
static void Main(string[] args)
{
Console.WriteLine(" Интеграл(Метод Симпсона) = {0}", Simpson(f, 10));
Console.WriteLine(" Интеграл(Метод Симпсона) = {0}", Simpson(x => 3 * x + 4, 10));
Console.ReadKey(true);
}