Исправить ошибку в методе Симпсона С# - 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);
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.182 из 5
Похожие ответы