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