Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab_3 / prog

.cpp
Скачиваний:
29
Добавлен:
28.01.2022
Размер:
874 б
Скачать
#include <iostream>
#include <cmath>
using namespace std;

double f(double x) {
	return sin(x + 1) * exp(2 / x);
}

double simpson(double a, double b, double n) {
	double h = (b - a) / n, sum2 = 0, sum4 = 0;
	for (int i = 1; i <= n / 2; i++) {
		if (i > 1) {
			sum4 += f(a + h * (2 * i - 1));
			sum2 += f(a + h * (2 * i - 2));
		} else {
			sum4 += f(a + h * (2 * i - 1));
		}
	}
	
	return (h / 3) * (f(a) + f(b) + 4 * sum4 + 2 * sum2);
}

int main() {
	double a, b, n, Ih, Ih2, d = 1, eps = 1E-3;
	cout << "Границы отрезка a и b, количество отрезков n: " << endl;
	cin >> a >> b >> n;
	
	do {
		Ih = simpson(a, b, n);
		n *= 2;
		Ih2 = simpson(a, b, n);
		d = (Ih - Ih2) / 15;
	} while (abs(d) > eps);
	
	cout << "Значение интеграла: " << Ih2 + d << endl;
	cout << "Погрешность: " << d << endl;
	
	return 0;
}
Соседние файлы в папке lab_3