Добавил:
t.me я просто люблю помогать людям gym a.k.a regym. S 2021 NA VE4NO ♡♡♡ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
21.10.2024
Размер:
1.18 Кб
Скачать
#include <iostream>
#include <cmath>
#define print(x) std::cout << x
#define insert(x) std::cin >> x

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

void countmepls(double& a, double& b, double& eps, double& delta)
{
    do
    {
        double x_1 = (a + b - delta)/2;
        double x_2 = (a + b + delta)/2;
        if (f(x_1)>f(x_2))
        {
            a = x_1;
        }
        else
        {
            b = x_2;
        }
    }
    while ((b-a) <= eps);
    print("MIN(x, y) = (" << (a+b)/2 << ", " << f(((a+b)/2)) << ")\n");
}

int main()
{
    double a, b, eps, delta;
    print("[a] Введите начальную точку отрезка >> ");
    insert(a);
    print("\n");
    
    std::cout << "[b] Введите конечную точку отрезка >> ";
    std::cin >> b;
    std::cout << "\n";
    
    std::cout << "[ε] Введите точность >> ";
    std::cin >> eps;
    std::cout << "\n";
    
    std::cout << "Введите параметр метода, который соответсвует условию: d ∈ (0, b - a / 2) ";
    std::cin >> delta;
    std::cout << "\n";
    countmepls(a, b, eps, delta);
}
Соседние файлы в папке ЛР-0006 (Одномерная оптимизация)