Лаба по ВычМ метод спуска по градиенту
.docКозловская К.В., гр. 042801.
«Оптимизация. Метод спуска по градиенту»
-
Исследуемая функция: .
-
Код программы:
function Mdrad (h,E,x1,x2) %h-step; E-error; x1,x2-init. coord.
x0=[x1 x2]; %starting point
x=x0; %moving to starting point
while 1
d=-g(x,h); %grad
while 1 %searching MIN along d
if F(x(1)+h*d(1),x(2)+h*d(2))<F(x(1),x(2)) %
x=x+h*d; %
else break; %
end; %
end; %
if abs(F(x(1),x(2))-F(x0(1),x0(2)))<E %exiting condition
break
else
x0=x;
continue;
end;
end;
Xmin=x %answer: MIN coord.
Fmin=F(x(1),x(2)) %answer: MIN value
end
-
m-файл с функцией вычисление градиента:
function g=g(x,h)
dfdx1=(F(x(1)+h,x(2))-F(x(1)-h,x(2)))/(2*h);
dfdx2=(F(x(1),x(2)+h)-F(x(1),x(2)-h))/(2*h);
g=[dfdx1 dfdx2];
return
-
m-файл с описанием функции :
function F=F(x1,x2)
F=(x2-3)^2+(1-x1)^2-4*x1;
return
-
графики функции:
-
проверка программы: