Upload
bogdan-curmei
View
215
Download
0
Embed Size (px)
Citation preview
8/16/2019 TO_lab5
1/9
Metode de căutare pentru rezolvarea problemelor deoptimizare staţionară f ără restricţii
Metode de gradient. Metode bazate pe direcții conjugate
1. Aspecte generale privitoare la metodele de căutare
a)
Prezentare generală
Metodele de căutare mai sunt numite şi metode de coborâre (în cazul problemelor deminim). Sunt metode iterative şi sunt dintre cele mai eficiente şi folosite metode de rezolvare a
problemelor de extremizare f ăr ă restricţii.În cadrul tuturor procedurilor se porneşte de la un punct iniţial oarecare x0. Acesta poate fi
ales absolut la întâmplare în domeniul de definiţie al funcţiei, sau ales într-un domeniu în care se bănuieşte că se află minimul, sau într-un domeniu stabilit printr-o procedur ă oarecare, de exemplu printr-un algoritm de explorare.
Fiecare din metode încearcă să stabilească iterativ aproximaţii din ce în ce mai bune aleminimului x*, procedura încheindu-se când este îndeplinit un criteriu de stop (de convergen ţă ).
La fiecare iteraţie, relaţia de bază folosită este:k
k k k
hxx θ +=+1 , (1)
în care xk reprezintă punctul stabilit în cadrul iteraţiei k , xk +1 este punctul care se calculează la nouaiteraţie k +1, hk ∈ R n - direcţia de deplasare în cadrul acestei căutări, θ k ∈ R - pasul de deplasare.
Să observăm că θ k are efectiv semnificaţia de lungime a pasului numai dacă || || 1k =h .
Totuşi, şi în cazul vectorilor hk nenormalizaţi se foloseşte aceeaşi denumire pentru θ k .Metodele difer ă între ele prin modul în care se face alegerea direcţiei de deplasare şi
alegerea pasului de deplasare. La majoritatea metodelor, la fiecare iteraţie se stabileşte mai întâidirec
ţia de deplasare
şi apoi lungimea pasului pe aceast
ă direc
ţie.
În ceea ce priveşte alegerea direcţiei de deplasare, există foarte multe variante demetode. Ele se pot grupa în funcţie de ordinul derivatelor care se calculează şi anume:
• metode de ordinul I: apelează numai la calculul valorilor funcţiei obiectiv (se mainumesc şi metode de căutare direct ă);
• metode de ordinul II: apelează atât la calculul valorilor funcţiei obiectiv, cât şi al
derivatelor de ordinul unu ale acesteia;• metode de ordinul al III-lea: faţă de metodele precedente, calculează în plus şi
derivatele de ordinul al doilea.
Utilizarea derivatelor reprezintă informaţii suplimentare în procesul de căutare a minimuluişi, ca atare, de regulă, metodele respective au o viteză de convergenţă crescută, mai ales metodelede ordinul al III-lea. Efortul de calcul suplimentar solicitat de evaluarea derivatelor, precum şi alteoperaţii necesare fac ca la fiecare iteraţie volumul de calcule să fie mai mare la aceste proceduri,astfel încât volumul global de calcule să se echilibreze oarecum între metodele de diverse ordine. Înacest sens contează mult şi uşurinţa cu care se pot stabili derivatele funcţiei obiectiv.
În leg ătur ă cu calcularea derivatelor în cadrul unui program facem următoareleobservaţii: ori de câte ori derivatele pot fi exprimate analitic f ăr ă un efort prea mare, se prefer ă folosirea unui program în care utilizatorul specifică expresiile analitice ale derivatelor şi valorileacestora în punctele care intervin se calculează prin înlocuirile corespunzătoare. Dacă nu dispunemde expresiile analitice ale derivatelor, acestea trebuie evaluate numeric (v. Anexa). Acest mod de a
proceda prezintă avantajul unei manipulări mai uşoare a programului, la care utilizatorul trebuie să specifice doar expresia funcţiei obiectiv şi anumite elemente de start, dar nu trebuie să precizezeexpresiile derivatelor. În schimb, evaluarea numerică a derivatelor conduce la creşterea într-o
8/16/2019 TO_lab5
2/9
oarecare măsur ă a timpului de calcul şi poate introduce erori suplimentare.
În privin ţ a stabilirii lungimii pasului la fiecare iteraţie, există următoarele posibilităţi:• utilizarea unui pas constant;• utilizarea unui pas variabil şi care, de regulă, rezultă din ce în ce mai mic, pe măsur ă ce
ne apropiem de punctul staţionar;
•
utilizarea unui pas optim: în acest caz, deplasarea pe direcţia respectivă se face până când se atinge minimul pe aceast ă direc ţ ie (deci nu este vorba de minimul global alfuncţiei).
Procedurile care folosesc pasul optim sunt cele mai atr ăgătoare, însă determinarea acestui pas sporeşte volumul de calcule la fiecare iteraţie. Există metode care impun utilizarea pasuluioptim la fiecare iteraţie.
Determinarea pasului optim pe o anumită direcţie se mai numeşte căutare liniar ă exact ă.Spre deosebire de aceasta, determinarea unui pas care asigur ă doar descreşterea funcţiei obiectiv peo anumită direcţie (şi care nu coincide de obicei cu pasul optim) se numeşte căutare aproximativă.
Să remarcăm din formula (1) că, dacă x* este stabilit de la iteraţia anterioar ă, iar h* este
determinat prin procedura utilizată, determinarea pasului optim constă în a stabilik k min f ( )
θ+ θx h , (2)
deci este vorba de minimizarea unei funcţii de o singur ă variabilă. Prin urmare, determinarea pasului optim pe o direc ţ ie este în fond o problemă de
extremizare unidimensional ă. Având în vedere că aceast ă determinare se repet ă la fiecare itera ţ ie,este necesar să folosim proceduri de extremizare unidimensionale cât mai eficiente, pentru amic şora cât mai mult volumul global de calcule.
Să observăm că deplasarea cu pas optim are următoarea interpretare geometrică (fig.1): dinx
k ne deplasăm pe direcţia hk până când dreapta respectivă devine tangentă la o suprafaţă f (x) =
const. Dacă pasul ar fi mai mic sau mai mare, ne-am opri pe o altă suprafaţă cu valoare mai mare aconstantei (de exemplu, pe suprafaţa f (x)=c1 >c2), deci f (x) n-ar mai lua cea mai mică valoare pedirecţia hk .
hk f ( x )=c1
f ( x )=c2
x k
x k+1
Lungimea pasului optim se mai poate calcula și prin utilizarea următoarei formule:
k k
k k k
f ( ),*
, ( )θ = −
x h
h H x h
, (3)
cu precizarea ca formula furnizează o valoare aproximativă a pasului optim.Formula (3) ofer ă o valoare exactă a pasului optim numai în cazul funcţiilor pătratice.
De regul ă , pentru căutarea liniar ă exact ă se folosesc proceduri mai precise - metode deeliminare (spre exemplu metoda sec ț iunii de aur) şi de interpolare.
Fig. 1
8/16/2019 TO_lab5
3/9
b) Condiţii pentru convergenţa procedurilor de căutare
Fie un şir de iteraţii de forma (1), în care direcţiile hk sunt admisibile ( f ( ), 0 0, atunci este posibil să alegem
paşii de deplasare θ k la fiecare iteraţie astfel încât să obţinem convergenţa şirului xk către punctul
staţionar x*.
Desigur, dacă H(x*)>0, atunci x* este punct de minim.Conform celor de mai sus, convergen ţ a este legat ă de semnul matricei Hessian, putând fi
asigurat ă atunci când aceasta este pozitiv definit ă în punctele şirului de itera ţ ii .
c) Criterii de stop
După cum s-a menţionat, în cadrul metodelor iterative de căutare, calculele trebuie opriteatunci când se obţine o apropiere suficient de bună de valoarea x*. În acest scop trebuie introdus încadrul programului de rezolvare a problemei un criteriu se stop (de oprire a calculelor, sau deconvergen ţă ).
Alegerea criteriului de stop este funcţie de particularităţile problemei şi este dictată de oserie de consideraţii.
În primul rând, dacă exist ă dubii privind convergen ţ a procedurii iterative, se recomand ă limitarea numărului de itera ţ ii, în afara introducerii criteriului de stop propriu-zis.
La metodele care apelează la calcularea gradientului f (x) al funcţiei obiectiv, pentru problemele f ăr ă restricţii, se poate folosi drept criteriu de stop condiţia:
k f ( ) ≤ εx (4)
unde ε se alege suficient de mic, funcţie de precizia de calcul dorită, iar xk reprezintă vectorul x stabilit la iteraţia k . Evident, condiţia (4) se bazează pe faptul că în punctele de extrem x* dininteriorul mulţimii pe care este definită funcţia este îndeplinită condiţia f (x*)=0.
În alte cazuri şi mai ales atunci când nu se calculează gradientul funcţiei în cadrul metodeirespective, se recomandă folosirea unor criterii de stop bazate pe variaţia argumentului sau afuncţiei. Un astfel de criteriu poate fi:
ε ≤− −1k k xx , (5)
care asigur ă oprirea calculului atunci când variaţiile vectorului x între două iteraţii succesive suntfoarte mici. Similar, calculele se pot opri dacă variaţiile funcţiei obiectiv de la o iteraţie la alta suntfoarte mici, deci conform criteriului
k k 1f ( ) f ( )−− ≤ εx x . (6)
Criteriilor absolute (5) şi (6) le sunt de obicei preferate criteriile relative corespunzătoare:
ε ≤− −
k
k k
x
xx 1
(5’)
şi respectiv ε ≤− −
)(
)()( 1
k
k k
f
f f
x
xx. (6’)
Dacă *x sau f (x*) sunt foarte apropiate de zero, atunci criteriile relative nu sunt
utilizabile, deoarece expresiile respective capătă valori mari chiar în apropierea optimului. Dacă sunt de aşteptat astfel de situaţii, atunci se pot folosi criteriile
8/16/2019 TO_lab5
4/9
,1
1
ε ≤+
− −
k
k k
x
xx (5")
respectiv .
)(1
)()( 1ε ≤
+
− −
k
k k
f
f f
x
xx (6”)
De remarcat că folosirea exclusivă a unui criteriu de forma (5) sau a unuia de forma (6) poate conduce la rezultate eronate.
Astfel de situaţii sunt ilustrate în fig.2 pentru funcţii de o singur ă variabilă. Se observă că variaţii Δ f foarte mici (fig.2.a) sau variaţii Δ x foarte mici (fig.2.b) pot să apar ă şi în puncte depărtatede extrem şi oprirea calculelor în astfel de cazuri ar conduce la erori mari. Astfel de situaţii pot fi
preîntâmpinate prin utilizarea combinată, în cadrul aceluiaşi program, a ambelor criterii.
Δ f
f ( x)
Δ x
(a)(b)Δ x
f ( x)Δ f
Fig. 2
2. Metode de gradient
Metodele sunt aplicabile în cazul în care f (x) este derivabilă în raport cu toate argumentele.Metodele de gradient sunt metode de ordinul al II-lea, la care se folosesc derivatele de
ordinul I ale funcţiei.Procedurile de gradient se desf ăşoar ă conform modalităţii generale de derulare a metodelor
de căutare, respectiv în baza formulei iterative (1), care la metodele de gradient propriu-zise sescrie:
k
k
k k rxx θ −=+1 , (7)
în care cu k k f ( )=r x am notat gradientul în punctul x k , iar θ k reprezintă pasul de deplasare peaceastă direcţie. Semnul minus din relaţia (1) corespunde faptului că deplasarea se face pe direcţiainversă gradientului.
Alegerea direcţiei de deplasare k k f ( )r x− = −
este foarte naturală, dacă avem în vederefaptul că, în vecinătatea unui punct, cea mai rapidă descreştere se realizează pe direcţia inversă gradientului; din acest motiv, metoda mai este denumită a celei mai abrupte coborâri.
Ca şi în cazul procedurilor de coborâre şi la metodele de gradient alegerea pasului se poateface în trei moduri: constant, variabil (din ce în ce mai mic) sau optim. Cel mai frecvent se foloseşteultima variantă, în acest caz metoda numindu-se a gradientului optimal (numită şi metoda Cauchy).
8/16/2019 TO_lab5
5/9
Metoda gradientului optimal
Iteraţiile se desf ăşoar ă conform cu relaţia (7), pasul de deplasare θ k fiind pasul optim pe
direcţia k k f ( ).− = −r x Acest pas se determină printr-o procedur ă de extremizare unidimensională (de eliminare sau interpolare). Dacă funcţia f (x) poate fi aproximată suficient de bine cu o funcţie
pătratică, atunci poate fi utilizată şi formula de calcul aproximativ (3) pentru pasul optim, care,
având în vedere că hk
= -rk
, devine:k k
k k k
,* .
,θ =
r r
r H r (8)
În cadrul acestei metode, direc ţ iile succesive de deplasare sunt ortogonale. Această proprietate are următoarea interpretare geometrică, ilustrată în fig.3: deplasarea dintr-un punct x0 seface cu pas optim, deci până când dreapta respectivă devine tangentă la o suprafaţă f (x) = const. -
punctul x1. Dar gradientul în x1 este ortogonal suprafeţei respective deci noua direcţie de deplasare(-r1) este ortogonală cu precedenta (-r0).
-r 1
x1
f ( x )=const. x0
x2
(b)
x1
x0
x2
x3
x4
-r 0
-r 1
-r 2
-r 3
(a)
Fig. 3Acest mod de deplasare zig-zagat constituie un dezavantaj al metodei. În plus,
deoarece f ( )x este foarte mic în apropierea optimului, paşii de deplasare sunt mici şi, ca atare,apropierea este foarte lentă. Minimul este atins după un număr infinit de pa şi.
În cazul funcțiilor pătratice, dacă punctul de start se află pe o axă corespunzătoare unuivector propriu al matricei Q, minimul este atins într-un pas.
Algoritmul este următorul:
1. se alege un punct iniţial x0 şi direcţia iniţială 0f ( )− x ;2. se calculează punctul următor cu formula (7), în care lungimea pasului de deplasare θ
k
se stabileşte printr-o căutare liniar ă exactă (se poate utiliza formula (8) doar în cazulfuncţiilor pătratice);
3. se repetă etapa (2) până la îndeplinirea unui criteriu de stop.
3.
Metode bazate pe direcţii conjugate
Ideea care stă la baza metodelor bazate pe direcţii conjugate este următoarea: fie x0 punctulde start al algoritmului şi x* punctul final de minim. Între cei doi vectori se poate scrie relaţia:
x* = x0 + xs (9)
xs ∈ R n fiind un vector necunoscut. Ca orice vector, acesta poate fi exprimat într-o bază oarecare înfuncţie de cele n componente ale sale. Prin urmare, alegând o bază convenabilă şi deplasându-nedin x0 succesiv în lungul axelor acestei baze, avem posibilitatea ca din n paşi să ajungem în x*,
8/16/2019 TO_lab5
6/9
bineînţeles dacă dispunem de o regulă pentru stabilirea lungimilor paşilor pe fiecare direcţie.Aceasta constituie un avantaj major faţă de metodele de gradient, la care minimul se atinge după unnumăr infinit de paşi.
O posibilitate de a determina o astfel de bază convenabilă este utilizarea direcţiilorconjugate. Atingerea minimului în n pa şi se ob ţ ine totu şi numai la func ţ iile pătratice. Utilizareadirecţiilor conjugate este legată de introducerea unei anumite matrice, care poate fi matricea
Hessian. La funcţii obiectiv oarecare, această matrice se modifică de la un pas la altul şi, ca atare,nu se mai păstrează aceeaşi conjugare între direcţii. Minimul nu mai poate fi atins în n paşi, însă oricum eficienţa metodelor este ridicată, convergenţa fiind supraliniar ă.
a) Direcţii conjugate
Doi vectori x, y ∈ R n se numesc conjuga ţ i (sau Q - conjuga ţ i, sau Q-ortogonali) dacă:
n n, 0, R ×= ∈x Qy Q (10)
Prin aceasta, conjugarea este o extindere a ortogonalităţii (la care Q = I ).• Se pune problema construirii unui set de vectori Q-conjugaţi. Procedeul este similar celui
de ortogonalizare Gram-Schmidt. Pornind de la un set de vectori 1,..., n liniar independenţi,construim vectorii u1,...,un conjugaţi. În acest scop impunem ca
jk
jkj
k k a u νu ∑=
++ +=1
11 . (11)
Scalarii ak j se deduc din condiţia ca uk+1 să fie conjugat cu toţi vectorii u j, j = 1,...,k:
k 1 j k 1 j j jkj0 , , a , ,u Qu ν Qu u Qu
+ += = +
ceilalţi termeni anulându-se deoarece j j, 0u Qu = pentru toţi i ≠ j.
Rezultă: jk 1
j jkj
,
,a
+
= ν Qu
u Qu. (12)
Procedeul constă în determinarea succesivă a vectorilor u1, u2,..., un folosind relaţiile (11)şi (12).
• Se demonstrează că n vectori n - dimensionali conjugaţi sunt liniar independenţi şi deci pot forma o bază.
• Folosind vectorii Q-conjugaţi, se poate exprima matricea Q-1 cu relația:
i iTn 11
i ii 0 ,
−−
== ∑ p pQ p Qp
. (13)
b) Metoda direcţiilor conjugate
• Se foloseşte relaţia de recurenţă obişnuită, pe care o vom scrie sub forma
k k
k k pxx θ +=+1 (14)
în care pk sunt vectorii care dau direcţiile de deplasare şi se aleg Q-conjugaţi. Paşii de deplasare se
aleg optimi pe direcţiile respective; precizia de stabilire a direcţiilor conjugate este dependentă decea cu care se calculează paşii optimi, aşa încât metoda impune o precizie ridicată în aplicarea procedurii de căutare liniar ă exactă.
8/16/2019 TO_lab5
7/9
Algoritmul este următorul:
1. se alege un punct iniţial x0 şi o direcţie iniţială p0 oarecare admisibilă, eventual0 0f ( )= −p x ;
2. se calculează punctul următor cu formula (14);3. se calculează noua direcţie de deplasare pk+1, conjugată cu direcţiile de deplasare
precedente (conform procedurii indicate la punctul (a));4. se repetă etapele (2) şi (3) până la îndeplinirea unui criteriu de stop.
În cazul func ţ iilor obiectiv pătratice, minimul se atinge după n paşi, deci algoritmul seopreşte după n iteraţii. Dacă funcţia este oarecare (nepătratică), minimul nu este atins după n paşi,dar convergenţa este destul de rapidă, mai ales dacă funcţia respectivă se aproximează suficient de
bine cu una pătratică.Pentru a evita o serie de erori de aproximare, se recomandă ca după iteraţia a n-a
algoritmul să se reia de la capăt, reiniţializându-l din punctul atins la a n-a iteraţie.
Observa ţ ie: calcularea direcţiilor conjugate în cadrul acestei proceduri se realizează pe baza algoritmului de tip Gram-Schmidt, prezentat la subpunctul (a). Formula (12) utilizată în cadrulacestuia prezintă neajunsul prezenţei matricei Q. În adevăr, în problemele de minim, aceastacorespunde matricei Hessian şi utilizarea ei ar prezenta o complicaţie major ă (procedura nuapelează la derivatele de ordinul doi). Eliminarea acestui neajuns se poate realiza printr-otransformare a formulei (12) (calculul este exact pentru funcţii pătratice), pornind de la (14): dacă notăm u j = p j în (12), din (14) rezultă:
( )
( )
T j 1 j k 1k 1 j jT k 1
kj jT j T j j j 1 j j
,
,
+ ++ +
+
−α = = =
−
x x QQp p Q
p Qpp Qp x x Qp
Dacă notăm j j 1 j+
= −y r r şi observăm că în cazul funcţiilor pătratice j j 1 j
( ),+
= −y Q x x se obţine jT k 1
kj j j
+
α =y
y p
(15)
Să observăm că metoda direcţiilor conjugate nu implică în sine calcularea gradienţilor, însă realizarea conjugării direcţiilor în corelare cu funcţia obiectiv impune utilizarea matricei Hessian.Acest lucru se evită prin înlocuirea formulei (12) cu (15), ceea ce necesită calcularea doar aderivatelor de ordinul unu. Acest aspect se regăseşte şi la metoda gradienţilor conjugaţi, care se
prezintă în continuare.
c) Metoda gradienţilor conjugaţi
Este o metodă derivată din precedenta, având mai multe variante. În cele ce urmează se vaexpune varianta Fletcher şi Reeves. Şi în acest caz se foloseşte o relaţie de recurenţă de aceeaşiformă
1 ,k k k k θ + = +x x p (16)
în care pk sunt direcţii conjugate, iar θ k sunt paşi optimi pe aceste direcţii. Direcţiile de deplasare sealeg astfel:
• prima direcţie se alege 0 0 0f ( )= − = −p x r (17)
•
celelalte direcţii se aleg 11 −−+−= k k k k prp β , (18)
8/16/2019 TO_lab5
8/9
unde
111 ,
,
−−− =
k k
k k
k rr
rr β . (19)
Algoritmul corespunzător acestei metode este următorul:
(1o) se alege punctul iniţial x0, se calculează 0 0f ( )=r x şi se stabileşte prima direcţie
p0 = − r0;(2o) se calculează punctul următor, conform (16), în care lungimea pasului de deplasare θ k
se stabileşte printr-o căutare liniar ă exactă; direcţia de deplasare pk este dată de formula(18), cu βk-1 oferit de formula (19);(3o) - se repetă etapa (2o) până la îndeplinirea unui criteriu de stop.
Şi la această metodă se atinge minimul după n paşi pentru funcţii pătratice, iar în cazul
funcţiilor oarecare convergenţa este destul de bună, recomandându-se ca după fiecare n iteraţii să seefectueze o reiniţializare.
Observații:• Metodele bazate pe direcţii conjugate au avantajul unei bune convergenţe şi nu necesită
memorarea unei matrice, fiind astfel utilizabile şi pentru probleme de mari dimensiuni.Se prefer ă mai ales metodele de gradient conjugat.
• Metodele de tip gradient conjugat folosesc de obicei expresiile analitice ale derivatelor.Dacă se apelează la evaluarea numerică a derivatelor, se recomandă ca la primele iteraţiiacestea să se aproximeze prin formula cu diferenţe înainte, iar la ultimele iteraţii să seefectueze obligatoriu prin formula cu diferenţe centrate (v. Anexa).
Teme de laborator
1. Să se realizeze un program care să permită aflarea minimului unei funcții de 2 variabile prin metoda gradientului optimal. Să se generalizeze programul pentru funcții de n variabile.
2. Să se realizeze un program care să permită aflarea minimului unei funcții de 2 variabile prin metoda direcțiilor conjugate. Să se generalizeze programul pentru funcții de n variabile.
3. Să se realizeze un program care să permită aflarea minimului unei funcții de 2 variabile prin metoda gradienților conjugați. Să se generalizeze programul pentru funcții de n
variabile.
Obs.1. Pasul optim se va obține printr-o procedur ă de extremizare unidimensională.2. Pentru evaluarea derivatelor funcțiilor de mai multe variabile se vor folosi informațiile
din anexă.
8/16/2019 TO_lab5
9/9
Anexa. EVALUAREA NUMERICA A DERIVATELOR
În cazurile în care stabilirea unor formule analitice pentru derivatele unor func ţii este imposibilă sau dificilă, se poate apela la aproximarea prin diferenţe finite a derivatelor (presupunând că acestea există).
Evaluarea derivatelor funcțiilor de o variabilă
Pentru o funcţie de o singur ă variabilă f(x) care admite derivata continuă, derivata f’(x) se poateaproxima prin formula cu diferen ţă înainte
( ) ( )( , ) , 0
f x h f x f h h
hϕ
+ −= > (1)
(există şi cu diferen ţ e în urmă, dar care nu prezintă nici o deosebire esenţială faţă de (1)), sau prin formula cudiferen ţă centrat ă
( ) ( )( , ) , 0
2c f x h f x h
f h hh
ϕ + − −= > (2)
Mărimea h >0 din (1) şi (2) se numeşte incrementul sau intervalul diferen ţ ei finite şi alegerea saeste esenţială în aproximarea cât mai exactă a derivatei.
Evaluarea derivatelor funcţiilor de mai multe variabile
Dacă ( ) : n f x R R→ este derivabilă în raport cu fiecare argument, atunci componenta i agradientului se poate aproxima cu formula cu diferenţe înainte
( ) ( )( ) i i
i i
f x h e f x f x
x h
+ −∂∂
(3)
sau cu formula cu diferenţe centrate
( ) ( )( ) 2i i i i
i i f x h e f x h e f x x h+ − −∂∂
(4)
În relaţiile de mai sus, ei este vectorul bazei corespunzător componentei xi, iar hi este incremenul dedeplasare pe această direcţie. Formula (4) necesită n evaluări suplimentare ale funcţiei obiectiv comparativcu (3) şi din acest motiv se foloseşte numai dacă se impun precizii ridicate.
La calcularea numerică a hessianului există două variante. Dacă gradientul lui f(x) este cunoscut printr-o formulă analitică, atunci elementul (i,j) al acestei matrice se poate aproxima cu formula cu diferenţeînainte
2 ( )( ) 1 ( ),
j j
i j j i i
f x h e f x f x
x x h x x
∂ +⎡ ⎤∂ ∂−⎢ ⎥∂ ∂ ∂ ∂⎣ ⎦
(5)
sau cu formula cu diferenţe centrate
2 ( ) ( )( ) 1,
2 j j j j
i j j i i
f x h e f x h e f x
x x h x x
∂ + ∂ −⎡ ⎤∂−⎢ ⎥∂ ∂ ∂ ∂⎣ ⎦
(6)
Dacă gradientul nu este cunoscut analitic, pentru aproximarea hessianului se pot folosi formulele(corespunzătoare diferenţelor înainte)
2
2 2
2
( 2 ) ( ) 2 ( )( ), 1,...
( ) ( ) ( ) ( )( ),
1,..., ; 1,... ;
i i i i
i i
i i j j i i j j
i j i j
f x h e f x f x h e f xi n
x h
f x h e h e f x f x h e f x h e f x
x x h h
i j j n i n
+ + − +∂=
∂
+ + + − + − +∂∂ ∂
≠ = =
(7)