Реферат: Одномерная оптимизация функций методом золотого сечения

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));

%-----------------------------------

К-во Просмотров: 381
Бесплатно скачать Реферат: Одномерная оптимизация функций методом золотого сечения