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

lab_5 / prog

.cpp
Скачиваний:
42
Добавлен:
28.01.2022
Размер:
897 б
Скачать
#include <iostream>
#include <cmath>

using namespace std;

double f(double x) {
	return sin(2 * x) - x;
}

void gs(double a, double b, double E) {
	double k2 = (sqrt(5) - 1) / 2, k1 = 1 - k2;
	double x1 = a + k1 * (b - a), x2 = a + k2 * (b - a);
	double F1 = f(x1), F2 = f(x2);
	int N = 0;

	cout << "N" << "\ta" << "\tb" << "\tx1" << "\tx2" << "\tf(x1)" <<
		"\t\tf(x2)" << endl;
	while (b - a > E) {
		if (F1 < F2) {
			b = x2; x2 = x1; F2 = F1;
			x1 = a + k1 * (b - a);
			F1 = f(x1);
		} else {
			a = x1; x1 = x2; F1 = F2;
			x2 = a + k2 * (b - a);
			F2 = f(x2);
		}
		cout << N++ << "\t" << a << "\t" << b << "\t" << x1
			<< "\t" << x2 << "\t" << F1 << " \t" << F2 << endl;
	}

	double x = (a + b) / 2, y = f(x);
	cout << "\n" << "Результат на отрезке [2; 3]:" << endl;
	cout << "x = " << x << "\n" << "y = " << y << endl;
}

int main() {
	gs(2, 3, 1E-4);
	return 0;
}
Соседние файлы в папке lab_5