Matlab Hogyan - Hidrodinamikai Rendszerek Tanszék
Matlab Hogyan - Hidrodinamikai Rendszerek Tanszék
Matlab Hogyan - Hidrodinamikai Rendszerek Tanszék
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
4. FEJEZET. NEMLINEÁRIS FELADATOK 17<br />
fminbnd.eps<br />
4.1. ábra. Az f(x) = (x − 1) 2 sin(10x) függvény és a két megtalált minimumhely.<br />
<strong>Matlab</strong> függvény a fminbnd(fun,x1,x2), mely a fun függvény x1 és x2 közötti egyik, lokális minimumhelyét<br />
próbálja megkeresni. Példaként keressük meg a<br />
f(x) = (x − 1) 2 sin(10x)<br />
függvény minimumát az 0 ≤ x ≤ 2 intervallumon! A kapcsolódó példaprogram (fminbnd demo.m) két<br />
iterációt indít, egyet a 0 ≤ x ≤ 2 intervallumon, másikat a 1 ≤ x ≤ 2-en. Mint az a 4.1 ábrán látszik,<br />
két különböző minimumhelyet talált meg az eljárás, ami erősen óvatósságra int a könnyelmű használattal<br />
kapcsolatban. A függvényhívás bal oldalán elegendő egy érték is (tehát pl. x1 az [x1,y1] helyett), ekkor<br />
csak minimumhely koordinátáját adja meg az eljárás. Az optimset paranccsal különböző opciókat állíthatunk<br />
be, itt az összes iterációs lépésről lekérdeztük az információt. Hasonlóan beállítható a tolerancia (TolX), a<br />
maximális iterációk száma (MaxIter) és a függvény kiértékeléseinek maximális száma (MaxFunEvals). A<br />
grafikával kapcsolatban a részleteket a 6. fejezet tartalmazza.<br />
function fmin1D_demo<br />
fmin1D demo.m<br />
[x1,y1] = fminbnd(@fv,0,2);<br />
[x2,y2] = fminbnd(@fv,1,2,optimset(’Display’,’iter’));<br />
fplot(@fv,[0,2]), hold on<br />
plot(x1,y1,’rx’,’Markersize’,15), hold on<br />
plot(x2,y2,’r+’,’Markersize’,15), hold off<br />
xlabel(’x’), ylabel(’y’), grid on<br />
function y=fv(x)<br />
y=(x-1)^2*sin(10*x);<br />
A program kimenete:<br />
>> fmin1D_demo