Реферат: Одномерная оптимизация функций методом золотого сечения
plot(x,f(x),'or'); text(x,f(x),'X_{max}','FontSize',15);
Б. Программа вычисления минимума:
functionMinimum(a,b,eps)
%Minimum(a,b,eps) функция нахождения минимума функции f(x)
% методом "золотого сечения" на отрезке [a, b] с точностью eps.
% Функция f(x) задаётся в M-файле, находящимся в той же дирекктории.
% (!) Для правильной работы функции необходимо, чтоб a<b и
% искомое значение было б единствено на [a, b].
k1=(sqrt(5)-1)/2; k2=1-k1;
x1=k1*a+k2*b; x2=k2*a+k1*b;
A=f(x1); B=f(x2);
while 1
if A<B
b=x2;
if b-a<eps break;
else x2=x1; B=A; x1=k1*a+k2*b; A=f(x1);
end;
else
a=x1;
if b-a<eps break;
else x1=x2; A=B; x2=k2*a+k1*b; B=f(x2);
end;
end;
end;
x=(a+b)/2;
disp(sprintf('%s %.15f','Минимумфункции f(x): x_min = ',x));
3.2 Руководство программиста
Запускается файл Example.m, она вызывает 2 функции максимум и минимум. Функция максимум вычисляет максимум В функцию максимум передаётся промежуток, в которой нужно вычислить максимум…В первых строках строится график заданной функции. Цикл while – бесконечный цикл. Он останавливается только, если у нас погрешность вычисленного значения меньше заданного eps. Потом задаётся точность результата (сколько цифр после запятой) и формат вывода.
Функция минимум вычисляет минимум… В функцию минимум передаётся промежуток, в которой нужно вычислить минимум … Цикл while – бесконечный цикл. Он останавливается только, если у нас погрешность вычисленного значения меньше заданного eps. Потом задаётся точность результата(сколько цифр после запятой) и формат вывода.