Разработать программу для вычисления интеграла методом трапеций и методом Симпсона - C (СИ)
Формулировка задачи:
Разработать программу для вычисления интеграла методом трапеций и методом Симпсона, оформив каждый способ в виде отдельной функции. Вывести на экран результаты интегрирования разными методами для сравнения.
Решение задачи: «Разработать программу для вычисления интеграла методом трапеций и методом Симпсона»
textual
Листинг программы
float f (float x) { //Функция, интеграл от которой берется
return x*x*atan(x);
}
float Trap (float x0,float h,float x1) { //Метод трапеций
float x,s;
s=(f(x0)+f(x1))/2;
for (x=x0+h; x<x1; x+=h) {
s+=f(x);
}
return s*h;
}
float Simpson (float x0,float h,float x1) { //Метод Симпсона
float x,s;
int i,n;
n=(x1-x0)/h;
s=(f(x0)+f(x1))/2+2*f(x0+h/2);
x=x0;
for (i=0; i<n-1; i++) {
x+=h;
s+=(2*f(x+h/2)+f(x));
}
return s*h/3;
}
Объяснение кода листинга программы
- В функции
fпроисходит вычисление значения функцииf(x)- возвращается значениеx*x*atan(x). - В функции
Trapиспользуется метод трапеций для вычисления интеграла. Принимаются начальное и конечное значенияx0иx1, а также шагh. Переменнаяsинициализируется как среднее арифметическое значений функцииf(x)наx0иx1. Затем в циклеforс шагомhзначениеsувеличивается на значение функцииf(x)на каждом шагеh. В конце функция возвращает значениеs*h, которое является приближенным значением интеграла. - В функции
Simpsonиспользуется метод Симпсона для вычисления интеграла. Принимаются начальное и конечное значенияx0иx1, а также шагh. Переменнаяsинициализируется как среднее арифметическое значений функцииf(x)наx0иx1. Затем в циклеforс шагомhзначениеxувеличивается наh, и в каждой итерации значениеsувеличивается на(2*f(x+h/2)+f(x)), затем значениеxувеличивается наh. В конце функция возвращает значениеs*h/3, которое является приближенным значением интеграла.