.


:




:

































 

 

 

 


fminsearch




MATLAB 5.3 (Release 11) MATLAB fmins fminsearch.

fminsearch:

x=fminsearch('fun',x0) 0 fun(). 0 , .

x=fminsearch('fun',x0,options) , options. options :

Display . Display:

'off' , 'iter' , 'final' , 'notify' ( ) .

options(1)=0 .

MaxFunEvals .

MaxIter .

TolX , .

[x,fval]=fminsearch('fun',x0,options) fval 'fun' x.

[x,fval,exitflag]=fminsearch('fun',x0,options) exitflag, fminsearch().

exitflag>0 'fun' x.

exitflag=0 , .

exitflag<0 , 'fun' .

[x,fval,exitflag,output]=fminsearch('fun',x0,options) output, :

output.algorithm ;

output.funcCount ;

output.iterations .

fminsearch - , myfun(), , 10-3 x, fval, exitflag :

 

[x,fval,exitflag,output]=fminsearch('myfun',[-3 0], optimset('Display','iter','TolX',1e-3));

x_min=x(1) %

y_min=x(2) %

f_min=fval %

exitflag %

n=output.funcCount %

 

 

1. MATLAB .

2. -̳ MATLAB.

3. , MATLAB fmins (fminsearch).

4. .

5. .

1. .

2. .

3.

4. - -̳.

5. -̳, fmins (fminsearch).

6. , fmins (fminsearch).

7. .

 

,
  [-300;300], [-15;25]
  [-8;8], [-6;6]
  [-10;10], [-10;20]
  [-10;10], [-10;10]
  [-10;10], [-10;10]
  [-3;3], [-3;0]
  [-4;0], [-3;3]
  [-100;100], [-10;10]
  [-4;8], [-100;100]
  [-70;70], [-10;10]
  [-20;10], [-10;20]
  [-10;10], [-50;50]
  [-300;300], [-10;10]
  [-15;10], [-10;10]

˳

1. .. . .: , 1967.

2. .. MATLAB 5. . .: -


 

: . . -̳.

:

fmins (fminsearch) MATLAB.

:

1.

 

2. - -̳

-̳, fmins:

%lab4

clear,clc

%

[x,y]=meshgrid([-3:0.1:2],[-2:0.1:2]); z=l4f(x,y);

figure('name','Nelder-Mid','numbertitle','off','menubar','none', 'color','w');

h=surfc(x,y,z);set(h,'facecolor',[1 1 1],'edgecolor',[0 0 0])

xlabel('Parametr 1 (x)');ylabel('Parametr 2 (y)');zlabel('Kryteriy (f(x,y))');

hold on,

clear all

pause;

% -̳

disp(' -̳')

l=1; %

disp(''), eps=0.001

al=1; be=0.5; ga=2; s1=0.9659; s2=0.2588;

x(1)=-3; y(1)=0; z(1)=l4f(x(1),y(1));

x(2)=x(1)+l*s2; y(2)=y(1)+l*s1; z(2)=l4f(x(2),y(2));

x(3)=x(1)+l*s1; y(3)=y(1)+l*s2; z(3)=l4f(x(3),y(3)); n=3;

figure(1),plot3(x,y,[0 0 0],'ok','markerfacecolor','k','markersize',3)

pause

while sqrt(sum((z-sum(z)/3).^2))/3>eps

[zs,j]=sort(z);

xl=x(j(1)); yl=y(j(1)); zl=zs(1);

xg=x(j(2)); yg=y(j(2)); zg=zs(2);

xh=x(j(3)); yh=y(j(3)); zh=zs(3);

xo=(xl+xg)/2; yo=(yl+yg)/2;

xr=(1+al)*xo-al*xh; yr=(1+al)*yo-al*yh; zr=l4f(xr,yr); n=n+1;

figure(1),plot3(xr,yr,0,'ok','markerfacecolor','k','markersize',3)

if zr<zl

xe=(1-ga)*xo+ga*xr; ye=(1-ga)*yo+ga*yr; ze=l4f(xe,ye); n=n+1;

figure(1),plot3(xe,ye,0,'ok','markerfacecolor','k','markersize',3)

if ze<zl, xh=xe; yh=ye; zh=ze;

else xh=xr; yh=yr; zh=zr;

end

else

if zr>zg

if zr<zh, xh=xr; yh=yr; zh=zr;

end

xc=(1-be)*xo+be*xh; yc=(1-be)*yo+be*yh; zc=l4f(xc,yc); n=n+1;

figure(1),plot3(xc,yc,0,'ok','markerfacecolor','k','markersize',3)

if zc>zh

xg=(xg+xl)/2; yg=(yg+yl)/2; zg=l4f(xg,yg);

xh=(xh+xl)/2; yh=(yh+yl)/2; zh=l4f(xh,yh); n=n+2;

figure(1),plot3([xg xh],[yg yh],[0 0],'ok','markerfacecolor','k','markersize',3)

else

xh=xc; yh=yc; zh=zc;

end

else

xh=xr; yh=yr; zh=zr;

end

end

x=[xl xg xh]; y=[yl yg yh]; z=[zl zg zh];

pause

end

line([xl xl],[yl yl],[0 2],'color','k');

disp('̳ '), x=xl, y=yl, z=zl

disp('ʳ '), n

% fmins()

disp(' fmins()')

[x,options]=fmins('l4f1',[-3 0],[0 1 eps]);

x_min=x(1)

y_min=x(2)

z_min=l4f(x_min,y_min)

n=options(10)

 

ϳ -̳:

function z=l4f(x,y);

z=x.*3.*exp(-x.^2./1.5-y.^2)+2*pi/3;

ϳ fmins():

function z=l4f1(x);

z=x(1).*3.*exp(-x(1).^2./1.5-x(2).^2)+2*pi/3;

 

-̳ , fmins() MATLAB:

ʳ n
xmin ymin fmin
-0,8423 -0,0396 0,5222  
fmins() -0,8721 0,0007 0,5187  

 

:

- -̳. ̳ -̳ ε=0,001 xmin=-0,8423 ymin=-0,0396 26 . ̳ , fmins, ε=0,001 xmin=-0,8721; ymin=0,0007 33 . -̳ fmins 0,5222-0,5187=0,0035, (0,5222-0,5187)/0,5187100%=0,6748%.





:


: 2017-02-25; !; : 467 |


:

:

80% - .
==> ...

1694 - | 1541 -


© 2015-2024 lektsii.org - -

: 0.026 .