Градиентный ускоренный
Запись от simonovada размещена 07.12.2019 в 19:08
Показов 718
Комментарии 0
Метки matlab, поиск минимума
|
clear all; f = @(x,y)(x^2+2.*y^2+(exp(x)).*(exp(y))); gradx=@(x,y)2*x+(exp(x)).*(exp(y)); grady=@(x,y)4*y+(exp(x)).*(exp(y)); x1=1; y1=1; x0=1; y0=1; e=0.05; alfa=1; D=e/2; a=-5; b=5; p=2; while p>0 g=@(alfa)f(x1-(alfa*gradx(x1,y1)),y1-(alfa*grady(x1,y1))); min_alfa=dihot(a,b,e,D,g); alfa=min_alfa; x1=x1-(alfa*gradx(x1,y1)); y1=y1-(alfa*grady(x1,y1)); p=p-1; end while sqrt(gradx(x0,y0)*gradx(x0,y0)+grady(x0, y0)*grady(x0,y0))>e minx=x1-x0; miny=y1-y0; h=@(alfa)f(x0+alfa*minx,y0+alfa*miny); min_alfa=dihot(a,b,e,D,h); alfa=min_alfa; x0=x0+alfa*minx; y0=y0+alfa*miny; end minxy =[x0,y0]; minf=f(x0,y0); disp(['X Y: ' num2str(minxy,4)]) disp(['min(X,Y): ' num2str(minf,5)]) |
Метки matlab, поиск минимума
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии


