TO_lab5

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 

    x

    xx 1

      (5’)

    şi respectiv ε ≤−   −

    )(

    )()( 1

    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 

    x

    xx  (5")

    respectiv .

    )(1

    )()( 1ε ≤

    +

    −   −

    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 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)