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

ЛР1 / lab1_sechenie

.m
Скачиваний:
27
Добавлен:
14.12.2022
Размер:
952 б
Скачать
function [f_min, x_min] = lab1_sechenie(a,b,eps)
    tau = (sqrt(5) - 1)/2;
    a_start = a;
    b_start = b;
    
    x1 = a+(1-tau)*(b-a);
    x2 = a + tau*(b-a);
    f1 = myfun(x1);
    f2 = myfun(x2);
    counter = 2;
    eps_n = (b-a)/2;

    while eps_n>eps
        if f1 >= f2
            a = x1;
            x1 = x2;
            f1 = f2;
            x2 = a+b-x2;
            f2 = myfun(x2);
        else
            b = x2;
            x2 = x1;
            f2 = f1;
            x1 = a+b-x1;
            f1 = myfun(x1);
        end
        eps_n = tau*eps_n;
        counter = counter + 1;
    end

    x_min = (a+b)/2;
    f_min = myfun(x_min);
    str=sprintf('Минимум функции на отрезке [%d; %d] - %3f, в точке %3f',a_start, b_start, f_min, x_min);
    disp(str);
    str = sprintf('Количество вычислений функции - %d', counter);
    disp(str);

end
Соседние файлы в папке ЛР1