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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
#include <math.h>
 
typedef double (*Function)(double);
typedef double (*SolverMethod)(Function, double, double, int);
 
double Solve(Function f, double a, double b, int n, SolverMethod solver)
{
    return solver(f, a, b, n);
}
 
double TrapezoidMethod(Function f, double a, double b, int n)
{
    double h = (b - a) / n;
    double sum = (f(b) - f(a)) / 2.0;
    
    double x = a + h;
    for (int i = 1; i < n - 1; i++)
    {
        sum = sum + f(x);
        x = x + h;
    }
    
    return h * sum;
}
 
double f1(double x)
{
    return (2.0 * x) / exp(2.0 * x);
}
 
double f2(double x)
{
    return sqrt(x * x + 1);
}
 
int main(void)
{
    const int N = 400;
    
    printf("%.4f\n", Solve(f1, -1, 3, N, TrapezoidMethod));
    printf("%.4f\n", Solve(f2, -3, 2, N, TrapezoidMethod));
    
    return 0;
}

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

  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
Похожие ответы