Интеграл методом трапеции - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Напишите программу по решению интегралов через универсальную функцию.

Решение задачи: «Интеграл методом трапеции»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. typedef double (*Function)(double);
  5. typedef double (*SolverMethod)(Function, double, double, int);
  6.  
  7. double Solve(Function f, double a, double b, int n, SolverMethod solver)
  8. {
  9.     return solver(f, a, b, n);
  10. }
  11.  
  12. double TrapezoidMethod(Function f, double a, double b, int n)
  13. {
  14.     double h = (b - a) / n;
  15.     double sum = (f(b) - f(a)) / 2.0;
  16.    
  17.     double x = a + h;
  18.     for (int i = 1; i < n - 1; i++)
  19.     {
  20.         sum = sum + f(x);
  21.         x = x + h;
  22.     }
  23.    
  24.     return h * sum;
  25. }
  26.  
  27. double f1(double x)
  28. {
  29.     return (2.0 * x) / exp(2.0 * x);
  30. }
  31.  
  32. double f2(double x)
  33. {
  34.     return sqrt(x * x + 1);
  35. }
  36.  
  37. int main(void)
  38. {
  39.     const int N = 400;
  40.    
  41.     printf("%.4f\n", Solve(f1, -1, 3, N, TrapezoidMethod));
  42.     printf("%.4f\n", Solve(f2, -3, 2, N, TrapezoidMethod));
  43.    
  44.     return 0;
  45. }

Объяснение кода листинга программы

  1. Программа на языке C
  2. Задача - вычисление интеграла методом трапеции
  3. Введенные функции:
    • f1(x) = (2.0 x) / exp(2.0 x)
    • f2(x) = sqrt(x * x + 1)
  4. Создание типа данных Function для представления функции
  5. Создание типа данных SolverMethod для представления метода решения
  6. Функция Solve принимает функцию, пределы интегрирования и количество трапеций в качестве параметров и использует метод решения, переданный в качестве последнего параметра
  7. Функция TrapezoidMethod реализует метод трапеции
  8. В функции TrapezoidMethod:
    • переменная h инициализируется как (b - a) / n
    • вычисляется сумма (f(b) - f(a)) / 2.0
    • цикл for используется для вычисления суммы f(x) для x от a до b - h
    • возвращается значение h * сумма
  9. В функции main:
    • N инициализируется как 400
    • вычисляется и выводится результат интеграла для f1 от -1 до 3 с N трапеций
    • вычисляется и выводится результат интеграла для f2 от -3 до 2 с N трапеций
  10. Программа успешно компилируется и выполняется

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


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

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

13   голосов , оценка 4.308 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы