Вычисление интеграла - C#
Формулировка задачи:
Приветствую, уважаемы пользователи CyberForum!
Очень надеюсь на Вашу помощь...
Необходимо вычислить интеграл: (x * x - 3 * x + 2) / (x * x * x * x + 2 * x*x*x + x + 1)
Область определений: [0; +бесконечности]
ε(погрешность) - вводим с клавиатуры
Решение задачи: «Вычисление интеграла»
textual
Листинг программы
using System;
namespace ConsoleApplication22
{
class Program
{
static void Main()
{
Func<double, double> f = x => Math.Exp(-x*x);
var res = Simpson(f, 0, 1);
Console.WriteLine(res);
var resinf = InfSimpson(f, 0, 0.0001);
Console.WriteLine(resinf);
Console.ReadKey();
}
static double Simpson(Func<double, double> f, double a, double b)
{
return (f(a) + 4*f((a + b)/2) + f(b))*(b - a)/6;
}
static double InfSimpson(Func<double, double> f, double from, double epsilon)
{
double result = 0, summand = double.PositiveInfinity;
for (double a = from, b = a + 1; summand > epsilon && !double.IsInfinity(result); a = b, b *= 2)
{
summand = Simpson(f, a, b);
result += summand;
}
return Math.Abs(result);
}
}
}