Добавил:
degenetard
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:lab_5 / prog
.cpp#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;
}