Исправить ошибку в методе Симпсона С# - C#
Формулировка задачи:
Здравствуйте, помогите пожалуйста исправить ошибку в методе Симпсона. После решения интеграла выводит неверное значение, так как значение должно совпадать с числом, полученным методами трапеции и прямоугольника. Ошибка кроется в этих строчках:
xt = a + (2 * i - 1) * h;
ft = fun(xt);
sum1 += ft;Решение задачи: «Исправить ошибку в методе Симпсона С#»
textual
Листинг программы
public void GoSimpson(FunDelegate fun)
{
if (a >= b || eps <= 0)
{
Console.WriteLine("Error data");
return;
}
double resultold;
result = -1;
double n = 1;
int k = 0;
do
{
resultold = result;
k++;
n = n * 2;
double h = (b - a) / n;
double sum1 = 0;
double sum2 = 0;
for (int j = 1; j <= n / 2 - 1; j++)
{
sum1 += fun(a + h * 2 * j);
}
for (int j = 1; j <= n / 2; j++)
{
sum2 += fun(a + h * (2 * j - 1));
}
result = (fun(a) + 2 * sum1 + 4 * sum2 + fun(b)) * h / 3.0;
}
while (Math.Abs(result - resultold) > eps);
Console.WriteLine("Integral Simpson = {0} k= {1}", result, k);
}