Documente Academic
Documente Profesional
Documente Cultură
Ppu Vitalie
Bagrin V.
Chiinu 2015
Scopul lucrrii:
Studiul metodelor de optimizare nelinear fr restricii
Definirea i utilizarea unor proceduri pentru minimizarea funciilor cu ajutorul metodei
gradientului i a metodelor de direcii conjugate cu o eroare mai mica ca 10 5
Analiza rezultatelor obinute, inclusiv stabilirea tipului minimului: local sau global.
Compararea rezultatelor, lund n considerare numrul de iteraii, evalurile pentru funcii
i gradient.
Descrierea algoritmilor utilizai:
metoda gradientului:
Se
x
alege
( k 1)
(k )
constant
k f ( x
(k )
arbitrar
, i se determin
z x ( k ) f ( x ( k ) ) ,
f(x,y)=ax12+2x1x2+bx12-2x1-3x2
f(x,y)=3*x12+2x1x2+x22-2x1-3x2
(k )
a=3;
b=5;
Metoda Gradientului:
double z1;
z1 = x1 - alfa*grx1;
return z1;
Cond = true;
alfa = alfa / 2;
z1 = Z1(x1, grx1, alfa);
z2 = Z2(x2, grx2, alfa);
}
int main(){
double a, b, x1, x2;
int iteratii = 0;
x1 = 1;
x2 = 1;
double alfa ;
cout << "ALFA = ";
cin >> alfa;
double eror ;
cout << "EROR = ";
cin >> eror;
double ro ;
cout << "RO = ";
cin >> ro;
double *rz = new double[3];
cout << "Introduceti valoarea lui a -> ";
cin >> a;
cout << "Introduceti valoarea lui b -> ";
cin >> b;
cout << endl << endl;
cout << "#Valorile in punctul initial x0 : " << endl << endl;
for (int i = 0; i<3; i++){
}
cout << "Minimul functiei = " << func(a, b, x1, x2) << endl;
cout << "Numarul de iteratii = " << iteratii + 1 << endl;
}
break;
COND = true;
x1 = rz[0];
x2 = rz[1];
for (int i = 0; i<1; i++){
}
cout << endl << endl;
system("pause");
}
Rezultatul la execuie
Concluzie:
Efectuand acest laborator am studiat i am aplicat n practic noiunile elementare de
optimizare neliniara, metoda gradientului pentru rezolvarea exerciiului propus primul
program prin Metoda gradientului care pornete de la o aproximatie iniial x(0) i se
genereaz iruri de vectori. Paii algoritmului const n : 1)alegerea valorii arbitrare alfa 2)se
verific condiia 3)dac este ndeplinit condiia atunci valoarea care o are alfa este
acceptat.