Documente Academic
Documente Profesional
Documente Cultură
Raport
Chișinău 2019
Cuprins
1. Sarcina lucrării ............................................................................................................................ 3
2. Obiectivele lucrării...................................................................................................................... 4
3. Mersul lucrării ............................................................................................................................. 5
Concluzii ......................................................................................................................................... 8
1. Sarcina lucrării
Declararea variabilelor:
int i, a, b;
float e=0.00001;
float grad1=0, grad2=0, mod=0, grad1P=0, grad2P=0;
float a1=0, a2=0, d1=0, d2=0, alpha=0, beta;
Citirea a și b din varianta respectivă:
cin >> a;
cin >> b;
Se calculează gradientul inițial apoi suma modulo2 a acestuia, aceatsa fiind mai mare
decât episilon se calculează vectorul d, care inițial este egal cu gradientul funcției cu semnul
inversat.
grad1P = 2*a*a1+2*a2-2;
grad2P = 2*a1+2*b*a2-3;
cout << "Grad = " << grad1P << ", " << grad2P << endl;
mod=sqrt(pow(grad1P,2)+pow(grad2P,2));
d1=-grad1P;
d2=-grad2P;
cout << "d = " << d1 << ", " << d2 << endl << endl << endl;
i = 1;
Se verifică prin condiția ciclului while dacă suma modulo2 a gradientului este mai mică
decât epsilon (e). Acest ciclu trebuie să se execute până când suma modulo2 nu va fi mai mică.
În baza lui alpha și a vectorului d se calculează x-șii noi. După aceea cu aceștea se
calculează suma modulo2 a gradientului și se verifică dacă aceasta este mai mică decât epsilon,
dacă e mai mică, programul se întrerupe aici, dacă nu, programul continuă cu calcularea lui beta.
Pentru aceasta se verifică dacă indexul lui x este par sau impar, dacă este par beta = 0, dacă
impar beta se calculează după formula: beta = (grad1*(grad1-grad1P) + grad2*(grad2-
grad2P)) / (grad1P*grad1P + grad2P*grad2P)
După aceea în baza lui beta se calculează vectorul d înmulțindu-se beta cu d-ul
precedent și adunându-se la vectorul gradientului luat cu semn opus.