Sunteți pe pagina 1din 5

Ministerul Educaiei i Tineretului al RM

Facultatea CIM
Catedra ATI
Lucrarea de laborator Nr.2
la disciplina Cercetari Operationale
Varianta 11
Tema: Optimizarea neconditionata
A efectuat stud. !r. TI"#$2 Tihon Vitali
A %erificat lect. superior Catruc Mariana
C&iin'u 2#(#
Obiectivele lucrrii:
Studierea metodelor de optimizare neliniar far restricii.
Definirea i utilizarea unor proceduri pentru minimizarea funciilor cu ajutorul
metodei gradientului i a metodelor de direcie conjugate cu eroare mai mic
E=0.00001
S se compare rezultatele, lund in consideraie numrul de iteraii, ealurile pentru
funcie i gradient.
Sarcina lucrrii:
Sa se determine punctele e!treme ale functiei "
f#!,$%=e
&#!'!($'$%
#a!
)
(*$
)
%
a=+ , *=1.
f#!,$%=e
&#!'!($'$%
#+'!
)
($
)
%
Pasii algoritmilor:
1)Metoda Gradientului :
Pasul1: Se alege -,. /#0,1%,0 /#0,1. Se recomanda -=1, . /#0.01,0.1%, 0=0.1,
Pasul2:Se calculeaza 2#-%=3#4%& - f#!#4%% si f#2#-%%.
Pasul3:Se erifica inegalitatea f#2#- %%&f#3#4%%5=& - .6 f#!#4%%6). Daca inegalitatea este
adearata atunci -4= -,in caz contrar -= 0' - si se trece la pasul ).
2)Algoritmul Fletcher-Reevs:
Pasul1:Se alege apro!imatia initiala 3#0% / 7 ar*itrara si se calculeaza f#3#0%%.
8erificam,daca f#3#0%%=0 atunci S9:;, solutia 3'=3#0%,in caz contrar se a alege
d#0%=& f#3#0%%,4=0.
Pasul2:Se determina
Pasul3:Se determina
Pasul4:Se calculeaza unde < este o multime de indici
<=#0,n,)n,=n,...%, adica algoritmul se reinnoieste peste fiecare n pasi.
Rezultatele:
Analiza rezultatelor:
>em la dispozitie ) metode cu ajutorul carora determinam punctele e!treme ale functiei.
>m*ele o*tin apro!imati acelasi rezultat intr&un timp foarte mic in cazul functiei pe care o
aem. ?nsa daca comparam numarul de iteratii,o*seram ca metoda gradientului conerge
lent. >ceasta inseamna ca pentru functii mari aceasta metoda nu a mai fi utila deoarece a
aea neoie de mai mult timp pentru a gasi solutia. ?n asa fel algoritmul @letcAer&7ees a fi
mai rapid.
Concluzie: Efectuind aceasta lucrare de la*orator am insusit ) metode de determinare a
punctelor e!treme ale functiei, si anume Betoda Cradientului si metoda @letcAer&7ees.>m
facut cunostinta cu pasii necesari spre a gasi solutia si am o*tinut rezultatele. ?nsa cind
comparam ele putin difera.Se poate de spus ca unul este mai reusit decit altul,insa tre*uie sa
tinem cont si de functia pe care o aem. Deci am*ii algoritmi au atit plusuri cit si minusuri
unul fata de altul.
Listingul programului:
Dinclude 5iostream.AE
Dinclude 5conio.AE
Dinclude 5matA.AE
class 7E2:<8>7E
F
pu*lic"
float @#float !, float $%
F return #e!p#&!'!&$'$%'# +'!'! ( $'$ %%,G
oid C7#%
F
dH0I=)'!H0I'e!p#&!H0I'!H0I&!H1I'!H1I%'#&+(+'!H0I'!H0I(!H1I'!H1I%,
dH1I=)'!H1I'e!p#&!H0I'!H0I&!H1I'!H1I%'#&1(+'!H0I'!H0I(!H1I'!H1I%, G
float 32#float !, float g,float a%
Freturn !&a'g,G
oid BE9:D>JC7>D?EK9L<L?#oid%
F int K=0,
alfa=0.1, gama=0.1, delta=0.1,
!H0I=1, !H1I=1, eps=0.00001,
C7#%,
MAile#sNrt#dH0I'dH0I(dH1I'dH1I%E=eps%
F
((K,
alfa=0.1,
zH0I=32#!H0I,dH0I,alfa%,
zH1I=32#!H1I,dH1I,alfa%,
MAile##@#zH0I,zH1I%&@#!H0I,!H1I%%E&delta'alfa'#dH0I'dH0I(dH1I'dH1I%%
F
alfa'=gama,
zH0I=32#!H0I,dH0I,alfa%,
zH1I=32#!H1I,dH1I,alfa%,
G
!H0I=32#!H0I,dH0I,alfa%,
!H1I=32#!H1I,dH1I,alfa%,
C7#%,
G
cprintf#OPnPnBetoda CradientuluiPnPnO%,
cout55OPnQoordonatele punctului sint" #O55!H0I55O, O55!H1I55O%O55endl,
cout55O8aloarea functiei in acest punct f#!%=O55@#!H0I,!H1I%55endl,
cout55OKumarul de iteratii K=O55K55endl,
G
oid @<E9QRE7J7EE8S#%
F
float d1,d),*eta=0,g1,g),
int 4=0,n=10,
alfa=0.1,
!H0I=1, !H1I=1,
C7#%,
d1=&dH0I, d)=&dH1I, g1=dH0I, g)=dH1I,
MAile#sNrt#d1'd1(d)'d)%E=eps%
F
if#4E=1%
F
if#4Sn==0%*eta=0,
else
F C7#%,
*eta=#dH0I'dH0I(dH1I'dH1I%T#g1'g1(g)'g)%,
G
d1=&dH0I(*eta'd1,
d)=&dH1I(*eta'd),
G
!H0I=!H0I(alfa'd1,
!H1I=!H1I(alfa'd),
((4,
G
cprintf#OPnPn>lgoritmul @<E9QRE7&7EE8SPnPnO%,
cout55OPnQoordonatele punctului sint" #O55!H0I55O, O55!H1I55O%O55endl,
cout55O8aloarea functiei in acest punct f#!%=O55@#!H0I,!H1I%55endl,
cout55OKumarul de iteratii K=O55455endl,
G
oid B>3#oid%
F int K=0,
alfa=0.1, gama=0.1, delta=0.1,
!H0I=1, !H1I=1, eps=0.00001,
C7#%,
MAile#sNrt#dH0I'dH0I(dH1I'dH1I%E=eps%
F ((K, alfa=0.1,
zH0I=32#!H0I,dH0I,alfa%,
zH1I=32#!H1I,dH1I,alfa%,
MAile##@#zH0I,zH1I%&@#!H0I,!H1I%%E&delta'alfa'#dH0I'dH0I(dH1I'dH1I%%
F
alfa'=gama,
zH0I=32#!H0I,dH0I,alfa%,
zH1I=32#!H1I,dH1I,alfa%,
G
!H0I=32#!H0I,&dH0I,alfa%,
!H1I=32#!H1I,&dH1I,alfa%,
C7#%,
G
cprintf#O Betoda Cradientului#punctul de ma!im%PnO%,
cout55OPnQoordonatele punctului sint" #O55!H0I55O, O55!H1I55O%O55endl,
cout55O8aloarea functiei in acest punct f#!%=O55@#!H0I,!H1I%55endl,
cout55OKumarul de iteratii K=O55K55endl,
G
priate"
float alfa,gama,delta,eps,!H)I,zH)I,dH)I,
G,
oid main#%
F
clrscr#%,
7E2:<8>7E o*,
o*.B>3#%,
o*.BE9:D>JC7>D?EK9L<L?#%,
o*.@<E9QRE7J7EE8S#%,
getcA#%,
G