Составить программу, вычисляющую интеграл по заданной формуле - C (СИ)

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

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

Нужно составить программу, которая вычисляет интеграл.. помогите пожалуйста ее составить, я не могу понять как с экспонентой составляется интеграл.

Решение задачи: «Составить программу, вычисляющую интеграл по заданной формуле»

textual
Листинг программы
#include <stdio.h>
#include <math.h>
 
#define N 10000
 
double vyraz (double x);
 
int main(int argc, const char * argv[]) {
 
    double S = 0, x, a, b, h;
 
    a = 0;
    b = 1;
    //отрезок [a, b] разобьем на N частей
    h = (b - a)/N;
    x = a + h;
    while (x < b)
    {
        S = S + 4*vyraz(x);
        x = x + h;
        //проверяем не вышло ли значение x за пределы полуинтервала [a, b]
        if (x >= b) break;
        S = S + 2*vyraz(x);
        x = x + h;
    }
    
    S = (h/3)*(S + vyraz(a) + vyraz(b));
    printf ("%.5lf\n", S);
    return 0;
}
 
 
double vyraz(double x){
    return exp(x)*sin(x)/(x+1);;
}

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

  1. Подключение необходимых библиотек для работы с математикой и вводом-выводом
  2. Определение константы N, которая задает количество частей, на которые будет разбит отрезок [a, b]
  3. Объявление функции vyraz, которая будет вычислять значение функции на каждой точке отрезка
  4. Объявление переменных S, x, a, b, h. Значение a устанавливается равным 0, значение b - 1. Переменная h инициализируется как (b-a)/N
  5. Вычисление значения h и присвоение его переменной x
  6. Организация цикла, который будет выполняться до тех пор, пока значение x меньше b. Внутри цикла суммируются значения функции на каждой точке отрезка и вычисляется новое значение x
  7. Проверка значения x на выход за пределы полуинтервала [a, b]. Если x больше или равно b, цикл прерывается
  8. Вычисление значения S с помощью формулы трапеции. Значение S умножается на h/3 и к нему добавляются значения функции на a и b
  9. Вывод значения S на экран
  10. Функция vyraz, которая вычисляет значение функции на каждой точке отрезка
  11. Код внутри функции vyraz выполняет вычисление значения функции по формуле exp(x)*sin(x)/(x+1)
  12. Код в функции main использует функцию vyraz для вычисления значения функции на каждой точке отрезка
  13. Значения переменных a и b устанавливаются равными 0 и 1 соответственно
  14. Значение переменной N устанавливается равным 10000
  15. Значение переменной h устанавливается равным (b-a)/N
  16. Значение переменной x устанавливается равным a + h
  17. Цикл выполняется до тех пор, пока значение x меньше b
  18. Внутри цикла суммируются значения функции на каждой точке отрезка и вычисляется новое значение x
  19. Проверка значения x на выход за пределы полуинтервала [a, b]. Если x больше или равно b, цикл прерывается
  20. Значение переменной S устанавливается равным (h/3)*(S + vyraz(a) + vyraz(b))
  21. Значение переменной S выводится на экран
  22. Функция main возвращает 0, что означает успешное выполнение программы

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

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