Реферат: Одномерная оптимизация функций методом золотого сечения
x=a:0.001:b; y=f(x);
plot(x,y,'k',a,f(a),'.b',b,f(b),'.b');
text(a,f(a),'A','FontSize',15); text(b,f(b),'B','FontSize',15);
title('График функции f(x).');
xlabel('Ось x.'); ylabel('f(x)');
grid on; hold on;
%--------------------------------------------
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;
tab=strcat('%.',int2str(abs(floor(log10(eps)))),'g');
%(!) здесь задаётся точность результата(сколько цифр после запятой)
% и формат вывода, сравни Minimum
disp(sprintf(strcat('%s',tab),'Максимум функции f(x): x_max = ',x));
%-----------------------------------