Documente Academic
Documente Profesional
Documente Cultură
1. Metoda Newton-Raphson
În cazul metodei Newton-Raphson relația de recurență este:
x k 1 x k - H k 1f ( x k ) , (1)
unde x k reprezintă punctul stabilit în cadrul iteraţiei k, x k 1 este punctul care se calculează la
noua iteraţie k 1 și -H k 1f ( x k ) este direcția de deplasare ( H k fiind matricea Hessian în
punctul x k ).
Observații:
În cazul funcţiilor pătratice, din orice punct s-ar porni, se ajunge în punctul de minim
dintr-un singur pas (dacă, evident, funcția este convexă). În cazul altor funcţii obiectiv minimul
nu este atins dintr-un singur pas, însă convergenţa este rapidă – convergență pătratică.
În cazul funcțiilor obiectiv oarecare, metoda poate fi divergentă sau poate converge
spre un punct șa sau un punct de minim relativ (convergenţa nu este asigurată decât în cazurile în
care H ( x k ) 0 , iar aceasta se întâmplă în general în apropierea punctului de minim). Acest
dezavantaj poate fi eliminat prin deplasarea cu pas optim pe direcția -H k 1f ( x k ) , relația de
recurență devenind:
x k 1 x k - *k H k 1f ( x k ) (2)
Punctul de minim este găsit într-un număr mai mic de pași decât în cazul metodei
originale și metoda este convergentă.
Metoda pare a fi cea mai puternică metodă de minimizare a funcțiilor fără restricții,
dar nu este foarte folositoare în practică deoarece:
necesită memorarea unei matrice n n la fiecare iterație;
există situații când elementele matricei hessian nu se pot calcula;
necesită calcularea inversei matricei hessian la fiecare pas;
necesită evaluarea produsului H k 1f ( x k ) la fiecare pas.
Astfel, în cazul funcțiilor obiectiv cu număr foarte mare de variabile, metoda Newton-
Raphson este impracticabilă.
4 x 2 x2 1 4 2
Gradientul funcției este f ( x ) 1 , iar matricea hessian H .
2 x1 2 x2 1 2 2
1 / 2 1 / 2 1
Se calculează H 1 . Gradientul în punctul x 0 este f ( x 0 ) .
1 / 2 1 1
Punctul următor va fi:
0 1 / 2 1 / 2 1 1
x1 x 0 H 1f ( x 0 ) .
0 1 / 2 1 1 3 / 2
0
Deoarece f ( x1 ) minimul se atinge într-un pas.
0
Exemplul 2. Să se studieze convergența metodei Newton-Raphson pentru funcţia
1
f ( x) .
x12 x22 1
Se observă că x* 0 și f ( x*) 1. Gradientul și matricea Hessian ale funcției sunt:
x1
( x 2 x 2 1) 2 3 x12 x22 1 4 x1 x2
2
f ( x ) 2 , H ( x)
1 2
(e1)
x2 ( x12 x22 1)3 4 x1 x2 x12 3x22 1
2 2 2
( x1 x2 1)
2 / ( x10 )3 6 / ( x10 ) 4 0
f ( x 0 ) 0
, H(x ) .
0 0 2 / ( x10 )4
1
0 x12 x22 . (e2)
3
Din a) rezultă 3( x12 x22 ) 4 x22 1 0 . Această condiție este satisfăcută de toate
punctele ce satisfac (e2).
Domeniul de convergență este interiorul cercului definit de (e2). Dacă punctul de
start este în interiorul acestui cerc, procedura este convergentă. În caz contrar procedura
este divergentă.
2. Metoda Marquardt
Metoda Marquardt combină avantajele metodei gradientului optimal (convergență sigură
și scăderea rapidă a valorii funcției când punctul de start este departe de punctul de minim) și ale
metodei Newton-Raphson (convergență rapidă dacă punctul de start se află în apropierea
punctului de minim).
Principiul metodei constă în modificarea elementelor diagonale ale matricei Hessian
astfel încât:
H k H k k I , (3)
x k 1 x k - H k 1f ( x k ) x k - H k k I f ( x k ) ,
1
(5)
1
unde - H k k I f ( x k ) este direcția de deplasare.
Pentru valori mari ale lui k direcția de căutare este cea din metoda gradientului optimal.
Valoarea lui k se va reduce de la o valoare mare la zero pe măsură ce evoluează procesul de
căutare; astfel, metoda se schimbă pe parcursul căutării de la cea a celei mai abrupte coborâri la
o metodă de tip Newton-Raphson.
Algoritm – Metoda Marquardt
4
1. Se alege un punct iniţial x 0 şi constantele 0 (de ordinul 10 ), c1 ( 0 c1 1 ), c2
( c2 1 ) și ; k 0 .
2. Se calculează f ( x k ) .
3. Se testează condiția de stop: dacă || f ( x k ) || , STOP - x k este punctul de minim;
altfel se trece la pasul 4.
1
4. Se calculează noul punct cu relația x k 1 x k - H k k I f ( x k ) .
5. Dacă f ( x k 1 ) f ( x k ) , se merge la 6; altfel, se merge la 7.
6. k 1 c1 k , k k 1 ; se merge la 2.
7. k 1 c2 k ; se merge la 4.
Observație. Algoritmul poate fi modificat introducând și pasul optim (care se obține printr-o
metodă de extremizare unidimensională) pe direcția de căutare, relația de recurență devenind:
1
x k 1 x k - *k H k k I f ( x k ) (6)
0.9998
; || f ( x ) || 1.4142 se continuă algoritmul.
1
Iterația 2. k 1 . f ( x1 )
1.0000
1
0.9998 4 2504 2 0.9998 4.9958 4
x 2 x1 ( H 1 I ) 1 f ( x1 ) 10 2 1.0000 5.0000 10
1.0000 2502
3. Metode cvasi-Newton
Ideea care stă la baza metodelor cvasi-Newton constă în aproximarea matricei Hessian
sau a inversei acesteia utilizând doar derivatele de ordinul I ale funcției f, asigurându-se în
același timp și pozitivitatea acestor aproximaţii.
În cazul în care Bk este aproximarea la iterația k pentru inversa H k1 , formula de căutare
a punctului de minim devine:
x k 1 x k k Bk r k , r k f ( x k ) (7)
Observații:
Matricea Bk 1 va rămâne pozitiv definită doar dacă pasul optim este determinat cu
precizie; în caz contrar:
- se calculează o valoare mai bună a pasului optim prin utilizarea unui număr mai
mare de ajustări în cadrul procedurii de extremizare unidimensională (până cînd
hkT r k devine suficient de mic);
- se specifică un număr de ajustări în metoda de extremizare unidimensională și se
sare peste actualizarea Bk dacă pasul nu poate fi determinat cu acuratețe;
- se continuă actualizarea matricei Bk cu valoarea aproximativă a pasului optim, dar
se reinițializează procedura după un număr de iterații
Metoda DFP este o metodă de gradienți conjugați în cazul funcțiilor obiectiv pătratice.
1
r 1 f ( x1 ) ; se verifică criteriul de stop: || r1 || 1.4142 se continuă
1
algoritmul.
Iterația 2. k 1 . Se actualizează matricea B cu: B1 =B0 +M 0 +N 0 , unde
T
h0 h0 ( B0 y 0 )( B0 y 0 )T
M 0 0 T
, N0 T
h0 y 0 y 0 B0 y 0
1 1 2
și y 0 = r1 - r 0 .
1 1 0
1
1 1 1
1 / 2 1 / 2
Deci M 0 1 ,
2 1 / 2 1 / 2
1 1
0
T
1 0 2 1 0 2
0 1 0 0 1 0 1 0
N0 .
1 0
2 0 0
2 0
0 1 0
Se poate calcula acum:
1 0 1 / 2 1 / 2 1 0 1 / 2 1 / 2
B1 .
0 1 1 / 2 1 / 2 0 0 1 / 2 3 / 2
Noua direcție de căutare va fi:
1 / 2 1 / 2 1 0
h1 = -B1r1 .
1 / 2 3 / 2 1 1
Pentru a găsi pasul optim pe direcția h1 , minimizăm funcția:
1 0
f ( x 2 ) f ( x1 1h1 ) f 1 f ( 1,1 1 ) 12 1 1 1* 1 / 2 .
1 1
Punctul următor va fi:
1 1 0 1
x 2 x1 1*h1 .
1 2 1 3 / 2
0
Deoarece r 2 x 2 este punctul de minim.
0
S-a ajuns la punctul de minim în n 2 pași (deoarece funcția este pătratică).
Bk 1 =Bk 1 k
T
pk y k pkT y k T
pk y k
T
pk y k
unde p k = x k +1 - x k k *hk , y k = r k +1 - r k
5. Se incrementează k; se merge la 2.
Observații:
Dacă pasul optim este determinat cu exactitate, matricea Bk rămâne pozitiv definită.
Totuși, în aplicațiile practice, matricea Bk poate fi nedefinită sau chiar singulară dacă pasul nu
este determinat cu exactitate. În acest caz se reinițializează periodic matricea cu matricea unitate.
Algoritmul BFGS este mai puțin sensibil decât algoritmul DFP la erorile în
determinarea pasului optim.
Convergența este supraliniară în apropierea punctului de minim.
1
r 1 f ( x1 ) ; se verifică criteriul de stop: || r1 || 1.4142 se continuă
1
algoritmul.
Iterația 2. k 1 . Se actualizează matricea B cu
y 0 B0 y 0 p0 p 0
T T T
p 0 y 0 B0 B0 y 0 p0
T
B1 =B0 1 ,
p 0 y 0 p0 y 0
T T T
p0 y 0
T
p0 y 0
1 0 2 1 1 1 0
2 0 0 1 1 1 1 2 0 0 1
1 0 0 1
B1 = 1
0 1 2 2 2
1 1 1 1 1 1
0 0 0
1 0 2
0 1 0 1 1
1 / 2 1 / 2
2 1 / 2 5 / 2
1 1
0
Noua direcție de căutare va fi:
1 / 2 1 / 2 1 0
h1 = -B1r1
1 / 2 5 / 2 1 2
Pentru a găsi pasul optim pe direcția h1 , minimizăm funcția:
1 0
f ( x 2 ) f ( x1 1h1 ) f 1 f (1,1 21 ) 412 21 1 1* 1 / 4 .
1 2
Punctul următor va fi:
1 1 0 1
x 2 x1 1*h1 .
1 4 2 3 / 2
0
Deoarece r 2 x 2 este punctul de minim.
0
S- ajuns la punctul de minim în n 2 pași (deoarece funcția este pătratică).
Teme de laborator
Să se realizeze programe în Matlab care să găsească punctul de minim al unei funcții de
2 variabile prin metodele Marquardt, DFP, BFGS.
Să se generalizeze programele pentru funcții de n variabile.