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

ЛР1 / lab1_hord

.m
Скачиваний:
16
Добавлен:
14.12.2022
Размер:
1.08 Кб
Скачать
function [x_min, f_min] = lab1_hord(a, b, eps, f)
a_start = a;
b_start = b;
syms x;
f_diff = diff(f);

f_diff_a = double(subs(f_diff, x, a));
f_diff_b = double(subs(f_diff, x, b));
x_min = a - ( f_diff_a / (f_diff_a - f_diff_b) ) * (a-b);
f_diff_xmin = double(subs(f_diff, x, x_min));
counter = 3;

while abs(f_diff_xmin) > eps
if f_diff_xmin > 0
b = x_min;
f_diff_b = f_diff_xmin;
else
a = x_min;
f_diff_a = f_diff_xmin;
end

x_min = a - ( f_diff_a / (f_diff_a - f_diff_b) ) * (a-b);
f_diff_xmin = double(subs(f_diff, x, x_min));
counter = counter + 1;
end

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

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