ALTE DOCUMENTE |
MCIMLucrarea 14 |
Minimizarea functiilor |
Functiile folosite în problemelor de minimizare sunt:
fmin calculeaza minimul functiilor de o variabila reala;
fmins calculeaza minimul functiilor de mai multe variabil reale;
fzero determina zeroul unei functii de o variabila reala.
1.Calculul minimului functiilor de o variabila
Functia fmin se utilizeaza pentru determinarea minimului unei functii de o singura variabila;
se apeleaza cu una dintre sintaxele:
x=fmin('F',x1,x2)
x=fmin('F',x1,x2,optiuni)
[x,optiuni]=fmin('F',x1,x2,optiuni,p1,p2 )
si returneaza valoarea lui pentru care functia F(X) este minima în intervalul x1<x<x2. 'F' este un sir care contine numele unui fisier M în care se gaseste functia ce trebuie minimizata.
Functia fmin poate fi apelata cu optiuni. Pentru controlul optiunilor se utilizeaza un vector. Numai 3 din cele 18 componente ale optiunilor sunt utilizate în functia fmin:
Daca optiunea (1) este diferita de zero, sunt afisate valorile intermediare ale rezolvarii. Implicit, optiunea (1) este zero;
Optiunea (2) impune toleranta. Valoarea implicita este 1.e-4;
Optiunea (14) controleaza numarul maxim de pasi (valoarea implicita este 500).
Exemplul 1.1. Sa se determine coordonatele minimului functiei sin(x) în intervalul [0,2p]. Cu instructiunile:
xmin = fmin('sin',0,2*pi)
ymin = sin (xmin)
Se obtine rezultatul:
Exemplul 1.2. Sa se determine minimului functiei f(x)=(x-3)2-1,pe intervalul (0,5). Se scrie un fisier functie; fie numele acestuia test.m, cu urmatorul continut:
function y=test(x)
y=(x-3).
se apeleaza functia fmin cu instructiunile:
xmin=fmin( test', 0,5)
ymin=test(xmin)
obtinându-se rezultatul:
xmin = 3 ymin = -1
2.Calculul minimului functiilor de mai multe variabile
Determinarea minimului unei functii de mai multe variabile cel mai apropiat de o estimare initiala x0, impusa ca argument, se face cu functia fmins, se apeleaza cu una din sintaxele:
x=fmin('F',x0)
x=fmin('F',x0,optiuni)
[x,optiuni]=fmins('F',x0, optiuni,[],p1, p2,.)
'F' este numele unui fisier M care contine functia obiectiv ce trebuie minimizata.
Fmins accepta pâna la 10 parametrii aditionali p1, p2,...
Functia fmin poate fi apelata cu optiuni. Pentru controlul optiunilor se utilizeaza un vector. Numai 3 din cele 18 componente ale optiunilor sunt utilizate în functia fmin:
Daca optiunea (1) este diferita de zero, sunt afisate valorile intermediare ale rezolvarii. Implicit, optiunea (1) este zero;
Optiunea (2) impune toleranta. Valoarea implicita este 1.e-4;
Optiunea (14) controleaza numarul maxim de pasi (valoarea implicita este 500).
Exemplul 2.1. Sa se determine minimul functiei:
F(x1,x2)=100(x2-x12)2+(1-x1)2+2
cel mai apropiat de (x1,x2)=(-1,1) Se scrie fisierul functie cu continutul:
function F=test(x)
F=100*(x(2)-x(1)^2)^2+(1-x(1))^2+2; si se înregistreaza cu numele test1.m.
Cu secventa: [xmin,optiuni]=fmin('test1',[-1,1] );
xmin
Fmin=test1(xmin)
Nr=175
Nr=175-este numarul pasilor de calcul.
3.Calculul zerourilor functiilor de o variabila reala
Functia fzero se apeleaza cu una dintre sintaxele:
z=fzero('F',x0) z=fzero('F', x0,tol) z=fzero('F',x0,tol,trace)
Aceasta returneaza zeroul functiei F(x) cel mai apropriat de estimarea intiala x0, calculat cu eroarea relativa tol este eps. 'F' este numele unui fisier M care contine functia obiectiv al carui zerou este cautat. Pentru a afisa rezultatul dupa fiecare iteratie, argumentul optional trace trebuie sa fie diferit de zero.
Se reaminteste ca zerourile unui polinom se pot calcula si cu functia roots.
Exemplul 3.1. Sa se determine zeroul functiei: f(x)=sin(x),cel mai apropiat de x0=3.Deoarece functia considerata este predefinita în MATLAB, rezultatul se obtine cu secventa:
x=fzero('sin',3)
fiind
x=3.1416
|