Meode de Opmzare Curs 4 VII.3.5. Meode Newon modfcae În ulmul algorm prezena în cursul recu în suaţa în care hessana Hf(x ) nu era pozv defnă se folosea drep drecţe de deplasare v = - f(x ) specfcă meode gradenulu. Ală varană ese modfcarea ad-hoc a marce Hf(x ). Ma precs, folosrea une drecţ de forma B = Hf(x ) + E unde E ese o marce aleasă asfel încâ Hf(x ) + E să fe sufcen de pozv defnă (E = dacă Hf(x ) ese sufcen de pozv defnă ). Meodele de aces p poară numele de meode Newon modfcae (sau meode Newon cu modfcarea hessane). Algormul asoca meodelor de p Newon modfcae ese schţa ma jos (se presupune x da) : = ; câ mp f(x ) execuă pasul : * se calculează B = Hf(x ) + E, unde E ese o marce aleasă asfel încâ Hf(x ) + E să fe sufcen de pozv defnă (E = dacă Hf(x ) ese sufcen de pozv defnă ) pasul 2: *se rezolvă ssemul B v = - f(x ) pasul 3: *se deermnă pasul de deplasare (subopmal) asoca drecţe de deplasare v ; pasul 4: x + = x + v ; : = +; Penru deermnarea marce B puem pleca de la descompunerea specrală a marce smerce Hf(x ), adcă screrea e sub forma Hf(x ) = QDQ, unde Q ese o marce orogonală (având pe coloane vecor propr a lu Hf(x )) ar D o marce dagonală (având pe dagonala prncpală valorle propr ale lu Hf(x )): λ D = λ 2 λ n Se poae lua B = Hf(x ) + E = QD m Q, unde
Mădălna Roxana Bunec Meode de Opmzare Curs - 27 µ D m = µ 2 µ n cu µ = max (ε, λ ) penru orce n (sau evenual, µ = max (ε, λ ) penru orce n), ε fnd un număr pozv mc (de exemplu, ε = ε mach, unde ε mach ese precza maşn). O asfel de descompunere necesă un volum mare de calcul dacă n mare. Un volum ma mc de calcul se obţne dacă se esmează doar cea ma mcă valoare propre λ mn (Hf(x )) a marce Hf(x ) ş se a max(, ε-λ mn (Hf(x ))) E = max(, ε-λ mn (Hf(x ))) max(, ε-λ mn (Hf(x ))) = max(, ε-λ mn (Hf(x )))I n ε fnd un număr pozv mc. Dacă marcea Hf(x ) are o valoare propre negavă mare în modul ş resul valorlor propr pozve dar mc în modul, aunc se poae înâmpla ca prn aceasă meodă drecţa de deplasare obţnuă să fe esenţal drecţa cele ma rapde descreşer. Ale meode de modfcare a hessane se bazează pe facorzăr Cholesy. Probabl cea ma smplă dee ese de a deermna un scalar τ > cu propreaea că Hf(x ) + τi n ese sufcen de pozv defnă. Un algorm penru deermnarea lu τ (baza pe facorzăr Cholesy) ese prezena ma jos (penru smplae noăm Hf(x ) = A, ar elemenele de pe dagonala prncpală cu a, n) : ρ > da (de exemplu, ρ = -3 ) dacă mn{a, n} > aunc τ : = alfel τ : = - mn{a, n} + ρ 2
Meode de Opmzare Curs 4 penru =,, execuă * se încearcă facorzarea Cholesy LL = A + τ I n dacă facorzarea reuşeşe aunc reurn L ş STOP alfel τ + : = max (2τ, ρ) Prezenăm în connuare mplemenarea în MAPLE ale algormulu de ma sus. Procedura are drep paramer funcţa obecv f, puncul nţal, noa x, ş precza ε (crerul de oprre ese f(x ) < ε). Deoarece procedura foloseşe comenz (vecor, grad, hessan, cholesy, ec.) dn pacheul lnalg, înane de ulzarea e pacheul rebue încărca: > wh(lnalg): Funcţonare procedur va f exemplfcaă penru funcţle > f:=(x,y)->3*x^2+2*y^2-2*x*y-4*x+2*y-3; f := ( x, y ) 3 x 2 + 2 y 2 2 x y 4 x + 2 y 3 > f2:=(x,y)->*(y-x^2)^2+(x-)^2; f2 := ( x, y ) ( y x 2 ) 2 + ( x ) 2 > f4:=(x,y)->/(x-)^4/4+(y^2-x); f4 := ( x, y ) + y 2 x 4 ( x ) 4 > f6:=(x,y)->x^2*(4-2.*x^2+x^4/3)+x*y+y^2*(-4+4*y^2); f6 := ( x, y ) x 2 + + 4 2. x 2 + 3 x4 x y y 2 ( 4 + 4 y 2 ) Implemenarea une varane a meode Newon modfcae (pasul de deplasare ese genera prn algormul bacracng-armjo) : > newon_modf:=proc(f,x,epslon) > local x,x,g,h,g,h,l,y,v,n,,z,n, bea,dela,p,pp,rho,au,md,es,dd; > n:=vecdm(x); x:=vecor(n); x:=vecor(n);y:=vecor(n); >v:=vecor(n);bea:=.5;dela:=.;n:=.; >L:=marx(n,n);dd:=floor(Dgs/2); > g:=grad(f(seq(x[],=..n)),[seq(x[],=..n)]); > H:=hessan(f(seq(x[],=..n)),[seq(x[],=..n)]); > x:=map(evalf,x); 3
Mădălna Roxana Bunec Meode de Opmzare Curs - 27 > g:=vecor([seq(subs(seq(x[]=x[],=..n), g[j]),j=..n)]); > whle norm(g,2)>=epslon do > H:=evalm(marx(n,n,[seq(seq(subs(seq(x[]=x[],=..n), H[j,p]),j=..n),p=..n)])); > rho:=.; >md:=mn(seq(h[,],=..n)); >f md> hen au:=. else au:=-md+rho f; >es:=; >whle es= do es:=; >for p from o n do >md:=h[p,p]+au -sum(l[p,]^2,=..p-); >f md<=^(-dd) hen es:=;au:=max(rho,2*au);p:=n+; >else L[p,p]:=md^(/2); for pp from p+ o n do >L[pp,p]:=(H[pp,p]-sum(L[pp,]*L[p,],=..p-))/L[p,p] od >f >od; >od; > y[]:=-g[]/l[,]; > for p from 2 o n do >y[p]:=(-g[p]-sum(l[p,j]*y[j],j=..p-))/l[p,p] od; > v[n]:=y[n]/l[n,n]; > for p from n- by - o do >v[p]:=(y[p]-sum(l[j,p]*v[j],j=p+..n))/l[p,p] od; > z:=evalf(f(seq(x[],=..n))); :=n; >x:=evalm(x+*v); > whle f(seq(x[],=..n))>z+*dela*sum(g[]*v[],=..n) > do :=*bea; x:=evalm(x+*v); > od; > x:=evalm(x); > g:=vecor([seq(subs(seq(x[]=x[],=..n), g[j]),j=..n)]); > od; > RETURN(evalm(x)) > end; > newon_modf(f,vecor([,]),^(-4)); [.6, -.22 ] > newon_modf(f2,vecor([,]),^(-4)); 4
Meode de Opmzare Curs 4 [.,. ] > newon_modf(f2,vecor([-,]),^(-4)); [.999999387,.999998728 ] > newon_modf(f2,vecor([-.5,.2]),^(-4)); [.4,.999999998 ] > newon_modf(f3,vecor([,-]),^(-4)); [.4744528 -,. -8 ] > newon_modf(f5,vecor([2,3]),^(-4)); [.56594829,. -53 ] > newon_modf(f4,vecor([.5,3]),^(-4)); [.286443-5, -. -62 ] > newon_modf(f4,vecor([-.5,.2]),^(-4)); [.2439499-7,. -8 ] > newon_modf(f6,vecor([-,-]),^(-4)); [.898423639, -.72659488 ] > newon_modf(f6,vecor([-,]),^(-4)); [ -.89842229,.7265644 ] > newon_modf(f6,vecor([,]),^(-4)); [ -.898423639,.72659488 ] Penru funcţle f 6 cu puncul nţal (, -) ş f 2 cu puncul nţal (, ) prezenăm ma jos ş reprezenarea grafcă (3D ş conour) a eraţlor: > newon_modf(f6,vecor([,-]),^(-4)); [.89842229, -.7265644 ] 5
Mădălna Roxana Bunec Meode de Opmzare Curs - 27 Număr de eraţ: 6 > newon_modf(f2,vecor([,]),^(-4)); [.3,.9999999948 ] Număr de eraţ: 5 Deş smplu de mplemena algormul prezena ma înane poae necesa un volum mare de calcul (în suaţa în care se încearcă facorzăr Cholesy penru mule valor τ ). Poae f avanajos ca τ să crească la fecare eraţe cu un facor ma mare, de exemplu în loc de 2. Ală sraege de modfcare hessane ese de a aplca algormul de facorzare Cholesy ş de a măr elemenele dagonale care apar în algorm. Aces algorm Cholesy modfca garanează pe de pare exsenţa facorulu 6
Meode de Opmzare Curs 4 Cholesy cu elemene care nu depăşesc în modul norma hessane, ar pe de ală pare nu modfcă hessana dacă ese sufcen de pozv defnă. Începem descrerea acese sraeg prn recapularea aşa nume descompuner LDL a une marce smerce A cu mnor prncpal nenul. O screre a marce A sub forma A = LDL, unde L ese o marce nferor runghulară cu elemenele de pe dagonala prncpală egale cu, ş D o marce dagonală se numeşe facorzare LDL. Ţnând con de relaţle: j = j a j = L D L j = L = D L j + L j D jj penru j =,2,,n. obţnem urmăorul algorm penru calculul facorzăr LDL a une marce A penru j=,2,...,n execuă j D jj := a jj - L = 2 D j penru = j+, j+2,...,n execuă L j : = j (aj - D jj = L D L ) j Algormul funcţonează penru marce smerce cu mnor prncpal nenul, în parcular penru marce A pozv defne. Legăura înre facorul Cholesy M al marce A (A= MM cu M =(m j ),j o marce nferor runghulară cu elemenele de pe dagonala prncpală pozve) ş facorzare A = LDL ese m j = L j D jj penru orce,j. Algormul de facorzare Cholelesy modfca aplca une marce A presupune dae două valor ε > ş η >. Se calculează A + E = LDL = MM asfel încâ D jj ε ş m j η penru orce ş j. Algorm Cholesy modfca penru calculul facorzăr A + E = LDL = MM penru j=,2,...,n execuă j C jj : = a jj - = L 2 D j ; θ j := max{c j, j< n} D jj := 2 θj max C j,, ε η 7
Mădălna Roxana Bunec Meode de Opmzare Curs - 27 penru = j+, j+2,...,n execuă j C j : = (a j - = L D L ); L j : = j Cjj ; D jj Să verfcăm că înr-adevăr m j η penru orce ş j: m j = L j D jj = C j D jj θ jj C η η. Penru a reduce modfcărle asupra lu A se po face permuăr smerce de ln ş coloane (algormul Cholesy modfca daora lu Gll, Murray ş Wrgh) obţnându-se facorzarea PAP + E = LDL = MM, unde P ese marcea de permuare. VII.3.6. Meoda drecţlor conjugae. Meoda gradenulu conjuga Fe C M n,n (R) o marce pozv defnă. Marcea C nduce un produs scalar pe R n, noa <, > C : <x, y> C : = <Cx, y>, x, y R n. Do vecor x, y R n se numesc conjugaţ în rapor cu C (sau C orogonal) dacă <Cx, y> = (sau echvalen, <x, y> C = ). Dacă vecor v, v 2,..., v sun nenul conjugaţ în rapor cu C do câe do, aunc v, v 2,..., v sun lnar ndependenţ (deoarece conjugarea în rapor cu C înseamnă orogonalae în rapor cu produsul scalar <, > C ş înr-un spaţu pre- Hlber orce famle de vecor nenul orogonal do câe do ese lnar ndependenă). În parcular, dacă = n, vecor v, v 2,..., v n consue o bază în R n. Lema 34. Fe f:r n R o funcţe defnă prn f(x) = <x,cx> + <x, d> cu 2 C M n,n (R) o marce pozv defnă ş d R n un vecor fxa, ş fe v, v,..., v n- o famle de vecor nenul conjugaţ în rapor cu C do câe do. Aunc exsă ş ese unc un punc de mnm global x* al lu f ş 8
Meode de Opmzare Curs 4 x* = < d, v > v. < Cv, v > n = Demonsraţe. Avem f(x) = Cx + d ş Hf(x) = C penru orce x R n. Deoarece C ese pozv defnă rezulă că f ese convexă, dec un punc x* ese punc de mnm dacă ş numa dacă x* ese punc saţonar. Avem f(x * ) = <=> x* = -C - d, ş ca urmare x* = -C - d ese uncul punc de mnm al lu f. Deoarece v, v,..., v n- sun vecor nenul conjugaţ în rapor cu C do câe do, e consue o bază în R n. În consecnţă, exsă scalar α, α,..., α n- R asfel încâ -C - d = n α v = <-C - d, v j > C = n j α < v, v > = -<C - d, v j > C = α j <v, v j > C -<d, v j > = α j <Cv j, v j > C α j = Aşadar x* = -C - d = < d, v >. < j j Cv, v > n = j < d, v > v < Cv, v > Lema 35. Fe f:r n R o funcţe defnă prn f(x) = <x,cx> + <x, d> cu 2 C M n,n (R) o marce pozv defnă ş d R n un vecor fxa. Dacă v R n ese un vecor nenul, aunc soluţa opmă a probleme = Demonsraţe. Penru orce avem nf f(x + v ) ese < f x, v > < Cv, v > f(x +v ) = 2 2 <v,cv > + (<v, Cx > + <v, d>) 2 <x,cx > + + 2 <x,cx > + <x,d> 9
Mădălna Roxana Bunec Meode de Opmzare Curs - 27 < Cx + d, v > < f x, v > de unde rezulă că = =. < Cv, v > < Cv, v > Propozţe 36. Fe f:r n R o funcţe defnă prn f(x) = 2 <x,cx> + <x,d> cu C M n,n (R) o marce pozv defnă ş d R n un vecor fxa, ş fe v, v,..., v n- o famle de vecor nenul conjugaţ în rapor cu C do câe do. Se consrueşe şrul (x ) : x + = x + v, x da, n- unde ese pasul opmal asoca drecţe v, adcă ese soluţa opmă a probleme nf f(x + v ). Aunc x n = x* uncul punc de mnm al lu f. Demonsraţe. Deoarece v, v,..., v n- sun vecor nenul conjugaţ în rapor cu C do câe do, e consue o bază în R n. În consecnţă, exsă scalar α, α,..., α n- R asfel încâ x = n α v = <x, v j > C = n j α < v, v > = <x, v j > C = α j <v, v j > C <Cx, v j > = α j <Cv j, v j > C α j = j < Cx, v > j j < Cv, v >. Aşadar x = n = < Cx, v > v (36.) < Cv, v > Adunând relaţle x + = x + v penru =..-, obţnem x = x + v. (36.2) = <x, v > C = x + < v, v > = <Cx, v > = <Cx, v > (36.3) C
Dec Meode de Opmzare Curs 4 < f(x ), v > = <Cx + d, v > = <Cx, v > + <d, v > = ( 36.3) Dn lema 35 rezulă că = <Cx, v > + <d, v > (36.4) < f x, v > = < Cv, v > ( 36.4 ) penru orce, ş înlocund în (36.2) cu n ş fecare, obţnem: x n = x + n = < f x, v > v < Cv, v > < Cx, v > d, v < > < Cv, v > < Cv, v > = x + = x + < Cx, v > < d, v > v < Cv, v > < Cv, v > n = n < Cx, v > v + = < Cv, v > < d, v > v < Cv, v > n = = ( 36.) x x + < d, v > v < Cv, v > n = Conform leme 34, f are unc punc de mnm (36.5) x* = < d, v > v, < Cv, v > n = ş în consecnţă ţnând con ş de (36.5), rezulă x n =x*. Lema 37. Fe f:r n R o funcţe defnă prn f(x) = <x,cx> + <x,d> cu 2 C M n,n (R) o marce pozv defnă ş d R n un vecor fxa, ş fe v, v,..., v m- (m un număr naural) o famle de vecor conjugaţ în rapor cu C do câe do. Se consrueşe şrul (x ) : x + = x + v, x da, m unde ese pasul opmal asoca drecţe v, adcă ese soluţa opmă a probleme nf f(x + v ). Aunc < f(x + ), v > = penru orce {,,, }. Demonsraţe. Vom face demonsraţa nducv după. Penru = avem < f(x ), v > = <Cx + d, v > = <Cx + Cv, v > + <d, v >
Mădălna Roxana Bunec Meode de Opmzare Curs - 27 ş ţnând con că = = <Cx, v > + <Cv, v > + <d, v >, < f x, v > Cx, v d, v = < > < > < Cv, v > < Cv, v > < Cv, v > (conform, leme 35) rezulă că < f(x ), v > =. Presupunem afrmaţa adevăraă penru ş o demonsrăm penru +. Penru = avem < f(x + ), v > = <Cx + + d, v > = <Cx + Cv, v > + <d, v > ar dn lema 35, = = <Cx, v > + <Cv, v > + <d, v >, < f x, v > Cx, v d, v = < > < > < > < Cv, v > < Cv, v >. Aşadar Cv, v < f(x ), v > =. Penru {,,, -}, conform poeze de nducţe < f(x ),v > =, ş ca urmare < f(x + ), v > = <Cx + + d, v > = <Cx + Cv + d, v > = < f(x ), v > + <Cv, v > = <v, v > C =. Propozţe 38. Fe f:r n R o funcţe defnă prn f(x) = 2 <x,cx> + <x,d> cu C M n,n (R) o marce pozv defnă ş d R n un vecor fxa, ş fe v, v,..., v n- o famle de vecor nenul conjugaţ în rapor cu C do câe do. Se consrueşe şrul (x ) : x + = x + v, x da, n- unde ese pasul opmal asoca drecţe v, adcă ese soluţa opmă a probleme nf f(x + v ). Aunc x + ese soluţe opmă a probleme unde A = x + Sp{v, v,, v } = x + n λv, λ R. = Demonsraţe. Adunând relaţle x + = x + v penru =.., obţnem x + = x + v. Fe x A. Aunc exsă λ, λ,..., λ n- R asfel încâ x = x + n λ v. Avem 2 = < f(x + ), x-x + + > = < f x, λ v > = = nf x A f(x),
Meode de Opmzare Curs 4 + = ( ) = λ < f x, v > = conform leme 37. Dec penru orce x A avem f(x) f(x + ) < f(x + ), x-x + > =, ş ca urmare x + ese punc de mnm penru f pe A. În cazul meode gradenulu conjuga vecor C- conjugaţ v, v,..., v n- se consruesc prn orogonalzarea relav la produsul scalar <, > C a ssemulu de vecor f(x ), - f(x ),..., f(x n- ) folosnd procedeul Gram-Schmd. Asfel v = - f(x ) v = - f(x ) + λ = v unde λ (=..-) se deermnă asfel încâ penru orce ş orce j -, <v, v j > =. Asfel λ = < v, f x > < v, v > C C < Cv, f x > = < Cv, v > Conform leme 37, penru orce avem < f(x ), f(x ) > = -< f(x ), v > = ş penru orce ş + < f(x ), f(x ),> = < - v + j λ v, f(x )> =. j=,j Pe de ală pare f(x + ) = Cx + + d = Cx + Cv + d = f(x ) + Cv ş ca urmare penru orce {,,, -2} = < f(x + ), f(x )> = < f(x ), f(x )> + <Cv, f(x )> = <Cv, f(x )>. Aşadar <Cv, f(x )> = ş dec λ = penru orce {,,, -2}. Dec v = - f(x ) + λ v = - f(x ) + λ - v - = 3
Mădălna Roxana Bunec Meode de Opmzare Curs - 27 = - f(x ) + Dec v + = - f(x + ) + β v, unde Cum dn lema 35 = < Cv, f x > β = < Cv, v > v-. < f x, v > < > ş Cv, v + < Cv, f x > < Cv, v > f(x + ) = Cx + + d = Cx + Cv + d = f(x ) + Cv = f(x ) < f x, v > < > Cv Cv, v rezulă că Cv = < Cv, v > < > ( f(x ) - f(x + )). În consecnţă f x β =, v + + < f ( x ), v > < f x f x, f x > ş ţnând con că v = - f(x ) + β - v -, de unde < f(x ), v > = -< f(x ), f(x )> (conform leme 37, < f(x ), v - > = ), rezulă β = + + < f ( x ), f ( x ) > < f x f x, f x > Deoarece < f(x ), f(x + )> =, β poae f exprma echvalen: β = + + f ( x ), f ( x ) < f x, f x > < >. În vruea condţe de C-orogonalae, în cazul funcţlor părace, meoda gradenulu conjuga converge înr-un număr fn de paş n (conform propozţe 36). Deoarece formulele de calcul penru β nu depnd explc de marcea C, meoda poae f aplcaă unor funcţ ma generale. Dacă funcţa f nu ese păracă aunc cele două formule de calcul ale lu β nu sun echvalene. În cazul în care 4
Meode de Opmzare Curs 4 β = + + f ( x ), f ( x ) < f x, f x > < >. se obţne algormul Flecher-Reeves, ar în cazul în care β = + + < f ( x ), f ( x ) > < f x f x, f x > se obţne algormul Pola-Rbere. Schţăm ma jos ce do algorm. Algormul Flecher-Reeves (se presupune x da) : = ; v := f(x ); câ mp f(x ) execuă pasul : *se deermnă pasul de deplasare (opmal sau subopmal) asoca drecţe de deplasare v ; pasul 2: x + = x + v ; pasul 3: β : = : = +; + + f ( x ), f ( x ) < f x, f x > < > ; v+ :=- f(x + ) + β v. Algormul Pola-Rbere (se presupune x da) : = ; v := f(x ); câ mp f(x ) execuă pasul : *se deermnă pasul de deplasare (opmal sau subopmal) asoca drecţe de deplasare v ; pasul 2: x + = x + v ; pasul 3: β : = + + < f ( x ), f ( x ) > < f x f x, f x > ; : = +; v + :=- f(x + ) + β v. 5
Mădălna Roxana Bunec Meode de Opmzare Curs - 27 Prezenăm în connuare mplemenarea în MAPLE a celor do algorm de ma sus. Procedurle au drep paramer funcţa obecv f, puncul nţal, noa x, ş precza ε (crerul de oprre ese f(x ) < ε). Procedurle folosesc comenz dn pacheul lnalg. Funcţonare procedurlor va f exemplfcaă penru funcţle: > f:=(x,y)->3*x^2+2*y^2-2*x*y-4*x+2*y-3; f := ( x, y ) 3 x 2 + 2 y 2 2 x y 4 x + 2 y 3 > f2:=(x,y)->*(y-x^2)^2+(x-)^2; > f4:=(x,y)->/(x-)^4/4+(y^2-x); f2 := ( x, y ) ( y x 2 ) 2 + ( x ) 2 f4 := ( x, y ) + y 2 x 4 ( x ) 4 > f6:=(x,y)->x^2*(4-2.*x^2+x^4/3)+x*y+y^2*(-4+4*y^2); f6 := ( x, y ) x 2 + + 4 2. x 2 + 3 x4 x y y 2 ( 4 + 4 y 2 ) Penru funcţle f 6 cu puncul nţal (, -) ş f 2 cu puncul nţal (, ) vom prezena ş reprezenarea grafcă (3D ş conour) a eraţlor (cele două funcţ nu sun funcţ convexe!). Implemenarea algormulu Flecher-Reeves (pasul opmal de deplasare ese obţnu prn meoda secţun de aur) : > FlecherReeves:=proc(f,x,epslon) > local x,,n,g,g,v,bea,,2,, y,y2,alpha,alpha,a,b,l,u,w,nmax,j,ph; > n:=vecdm(x); x:=vecor(n);v:=vecor(n); >g:=grad(f(seq(x[],=..n)),[seq(x[],=..n)]); > x:=map(evalf,x); > g:=vecor([seq(subs(seq(x[]=x[],=..n), g[j]),j=..n)]); >v:=evalm(-g); > whle norm(g,2)>=epslon do >ph:=->f(seq(x[]+*v[],=..n)); > :=.; 2:=.; y:=ph(); y2:=ph(2); > f y<=y2 hen a:=; b:=2 else > whle y>y2 do y:=y2;:=2;2:=2+;y2:=ph(2) od; > a:=-; b:=2 f; > alpha:=evalf((5^(/2)-)/2);alpha:=-alpha; 6
Meode de Opmzare Curs 4 > L:=b-a;u:=a+alpha*L;w:=a+alpha*L;y:=ph(u); >y2:=ph(w);nmax:=cel(ln(epslon/(*l))/ln(alpha));j:=; > whle j<nmax do > f y<y2 hen b:=w;l:=b-a; > y2:=y;w:=u;u:=a+alpha*l;y:=ph(u) > else a:=u;l:=b-a; > y:=y2;u:=w;w:=a+alpha*l;y2:=ph(w); > f; >j:=j+ > od; > :=(a+b)/2;bea:=sum(g[]*g[],=..n); > x:=evalm(x+*v); > g:=vecor([seq(subs(seq(x[]=x[],=..n), g[j]),j=..n)]); >bea:=sum(g[]*g[],=..n)/bea;v:=evalm(-g+bea*v); > od; > RETURN(evalm(x)) > end; > FlecherReeves(f,vecor([,]),^(-4)); [.62898, -.262 ] > FlecherReeves(f2,vecor([,]),^(-4)); [.9999779929,.999953739 ] > FlecherReeves(f2,vecor([-,]),^(-4)); [.999995729,.99999224 ] > FlecherReeves(f2,vecor([-.5,.2]),^(-4)); [.999986479,.99997399 ] > FlecherReeves(f3,vecor([,-]),^(-4)); [.28487-5, -.958 ] > FlecherReeves(f4,vecor([.5,3]),^(-4)); [.29674978-6,.385865244 ] > FlecherReeves(f4,vecor([-.5,.2]),^(-4)); [ -.6337353-5, -.695436-5 ] > FlecherReeves(f6,vecor([-,-]),^(-4)); [ -.89842733,.72652653 ] > FlecherReeves(f6,vecor([-,]),^(-4)); [.7364624, -.796833832 ] 7
Mădălna Roxana Bunec Meode de Opmzare Curs - 27 > FlecherReeves(f6,vecor([,]),^(-4)); [.89842733, -.72652653 ] > FlecherReeves(f2,vecor([,]),^(-4)); [.999978974,.999956467 ] 7 eraţ > FlecherReeves(f6,vecor([,-]),^(-4)); [ -.7364624,.796833832 ] 24 eraţ Implemenarea algormulu Pola-Rbere (pasul opmal de deplasare ese obţnu prn meoda secţun de aur) : > PolaRbere:=proc(f,x,epslon) > local x,,n,g,g,g,v,bea,,2,,y,y2, >alpha,alpha,a,b,l,u,w,nmax,j,ph; 8
Meode de Opmzare Curs 4 > n:=vecdm(x); x:=vecor(n);v:=vecor(n); >g:=grad(f(seq(x[],=..n)),[seq(x[],=..n)]); > x:=map(evalf,x); > g:=vecor([seq(subs(seq(x[]=x[],=..n), g[j]),j=..n)]); >v:=evalm(-g); > whle norm(g,2)>=epslon do >ph:=->f(seq(x[]+*v[],=..n)); > :=.; 2:=.; y:=ph(); y2:=ph(2); > f y<=y2 hen a:=; b:=2 else > whle y>y2 do y:=y2;:=2;2:=2+;y2:=ph(2) od; > a:=-; b:=2 f; > alpha:=evalf((5^(/2)-)/2);alpha:=-alpha; > L:=b-a;u:=a+alpha*L;w:=a+alpha*L;y:=ph(u);y2:=ph(w); >nmax:=cel(ln(epslon/(*l))/ln(alpha));j:=; > whle j<nmax do > f y<y2 hen b:=w;l:=b-a; > y2:=y;w:=u;u:=a+alpha*l;y:=ph(u) > else a:=u;l:=b-a; > y:=y2;u:=w;w:=a+alpha*l;y2:=ph(w); > f; >j:=j+ > od; > :=(a+b)/2; > x:=evalm(x+*v); > g:=vecor([seq(subs(seq(x[]=x[],=..n), g[j]),j=..n)]); >bea:=sum((g[]-g[])*g[],=..n)/sum(g[]*g[],=..n); >g:=evalm(g);v:=evalm(-g+bea*v); > od; > RETURN(evalm(x)) > end; > PolaRbere(f,vecor([,]),^(-4)); [.673636, -.99982728 ] > PolaRbere(f2,vecor([,]),^(-4)); [.999999936,.9999998742 ] > PolaRbere(f2,vecor([-,]),^(-4)); [.9999998969,.9999997969 ] 9
Mădălna Roxana Bunec Meode de Opmzare Curs - 27 > PolaRbere(f2,vecor([-.5,.2]),^(-4)); [.22,.463 ] > PolaRbere(f3,vecor([,-]),^(-4)); [ -.9652-6, -.366547736-5 ] > PolaRbere(f4,vecor([.5,3]),^(-4)); [ -.252499-5, -.8277 ] > PolaRbere(f4,vecor([-.5,.2]),^(-4)); [.832527387-5,.68755 ] > PolaRbere(f6,vecor([-,-]),^(-4)); [ -.8984347334,.72652683 ] > PolaRbere(f6,vecor([-,]),^(-4)); [ -.736585,.796854846 ] > PolaRbere(f6,vecor([,]),^(-4)); [.8984347334, -.72652683 ] > PolaRbere(f2,vecor([,]),^(-4)); [.999999959,.9999997978 ] 9 eraţ > PolaRbere(f6,vecor([,-]),^(-4)); [.736585, -.796854846 ] 2
Meode de Opmzare Curs 4 4 eraţ Penru a lma acumularea erorlor daorae mprecze calcululu paşlor, se recomandă renţalzarea drecţe v sub forma v = - f(x ) după fecare m eraţ, m n. Se obţn asfel meodele de graden conjuga cu renţalzare (resar), caracerzae prn calcularea la pasul 3 β =, dacă + înreg m β, în caz conrar ş alegerea drecţe de deplasare v + :=- f(x + ) + β v. Prezenăm în connuare mplemenarea în MAPLE ale algormlor Flecher-Revees ş Pola-Rbere cu renţalzare (resar) după fecare n eraţ (n ese numărul de varable de care depnde funcţa obecv). Vom opa penru alegerea subopmală a pasulu. Procedurle au drep paramer funcţa obecv f, puncul nţal, noa x, ş precza ε (crerul de oprre ese f(x ) < ε). Procedurle folosesc comenz dn pacheul lnalg. Funcţonare procedurlor va f exemplfcaă penru aceleaş funcţ ca procedurle fără resar (FlecherReeves, PolaRbere) Implemenarea algormulu Flecher-Reeves cu resar (pasul subopmal de deplasare ese genera prn algormul bacracng-armjo) : > FlecherReeves_r:=proc(f,x,epslon) > local x,x,,n,g,g,v,bea,z,n,bea_pas,dela,, ; 2
Mădălna Roxana Bunec Meode de Opmzare Curs - 27 > n:=vecdm(x); x:=vecor(n);x:=vecor(n);v:=vecor(n); >g:=grad(f(seq(x[],=..n)),[seq(x[],=..n)]); >bea_pas:=.5;dela:=.;n:=.; > x:=map(evalf,x);:=; > g:=vecor([seq(subs(seq(x[]=x[],=..n), g[j]),j=..n)]); >v:=evalm(-g); > whle norm(g,2)>=epslon do > z:=evalf(f(seq(x[],=..n))); :=n;x:=evalm(x+*v); > whle f(seq(x[],=..n))>z+*dela*sum(g[]*v[],=..n) > do :=*bea_pas; x:=evalm(x+*v); > od; > bea:=sum(g[]*g[],=..n); > x:=evalm(x);:=+; > g:=vecor([seq(subs(seq(x[]=x[],=..n), g[j]),j=..n)]); >f rem(+,n)= hen bea:= else >bea:=sum(g[]*g[],=..n)/bea f;v:=evalm(-g+bea*v); > od; > RETURN(evalm(x)) > end; > FlecherReeves_r(f,vecor([,]),^(-4)); [.657569, -.2945 ] > FlecherReeves_r(f2,vecor([,]),^(-4)); [.99993774,.99986355 ] > FlecherReeves_r(f2,vecor([-,]),^(-4)); [.9999269533,.999849938 ] > FlecherReeves_r(f2,vecor([-.5,.2]),^(-4)); [.3642,.76377 ] > FlecherReeves_r(f3,vecor([,-]),^(-4)); [ -.8763257-6, -.3359875 ] > FlecherReeves_r(f4,vecor([.5,3]),^(-4)); [.4432465-5,.7325297 ] > FlecherReeves_r(f4,vecor([-.5,.2]),^(-4)); [.7334899-5,. ] > FlecherReeves_r(f6,vecor([-,-]),^(-4)); [ -.89842256,.726573686 ] 22
Meode de Opmzare Curs 4 > FlecherReeves_r(f6,vecor([-,]),^(-4)); [ -.89845229,.726566759 ] > FlecherReeves_r(f6,vecor([,]),^(-4)); [.89842256, -.726573686 ] > FlecherReeves_r(f2,vecor([,]),^(-4)); [.999925593,.9998228383 ] 5 eraţ > FlecherReeves_r(f6,vecor([,-]),^(-4)); [.89845229, -.726566759 ] 4 eraţ 23
Mădălna Roxana Bunec Meode de Opmzare Curs - 27 Implemenarea algormulu Pola-Rbere cu resar(pasul subopmal de deplasare ese genera prn algormul bacracng-armjo) : > PolaRbere_r:=proc(f,x,epslon) > local x,x,,n,g,g,g,v,bea,z,n,bea_pas,dela,,; > n:=vecdm(x); x:=vecor(n);x:=vecor(n);v:=vecor(n); >g:=grad(f(seq(x[],=..n)),[seq(x[],=..n)]); >bea_pas:=.5;dela:=.;n:=.; > x:=map(evalf,x);:=;; > g:=vecor([seq(subs(seq(x[]=x[],=..n), g[j]),j=..n)]); >v:=evalm(-g); > whle norm(g,2)>=epslon do > z:=evalf(f(seq(x[],=..n))); :=n;x:=evalm(x+*v); > whle f(seq(x[],=..n))>z+*dela*sum(g[]*v[],=..n) > do :=*bea_pas; x:=evalm(x+*v); > od; > x:=evalm(x); > g:=vecor([seq(subs(seq(x[]=x[],=..n), g[j]),j=..n)]); >:=+; >f rem(+,n)= hen >bea:=sum((g[]-g[])*g[],=..n)/sum(g[]*g[],=..n) else bea:= f; >g:=evalm(g);v:=evalm(-g+bea*v); > od; > RETURN(evalm(x)) > end; > PolaRbere_r(f,vecor([,]),^(-4)); [.5999894627, -.999927775 ] > PolaRbere_r(f2,vecor([,]),^(-4)); [.999948998,.99988346 ] > PolaRbere_r(f2,vecor([-,]),^(-4)); [.99994952,.9998796744 ] > PolaRbere_r(f2,vecor([-.5,.2]),^(-4)); [.9999424538,.9998872 ] > PolaRbere_r(f3,vecor([,-]),^(-4)); 24
Meode de Opmzare Curs 4 [ -.274299758-5,.25352496 ] > PolaRbere_r(f4,vecor([.5,3]),^(-4)); [ -.26654842, -.34457722-7 ] > PolaRbere_r(f4,vecor([-.5,.2]),^(-4)); [.9696757, -.25-9 ] > PolaRbere_r(f6,vecor([-,-]),^(-4)); [ -.898447254,.72668923 ] > PolaRbere_r(f6,vecor([-,]),^(-4)); [.89843, -.72656985 ] > PolaRbere_r(f6,vecor([,]),^(-4)); [.898447254, -.72668923 ] > PolaRbere_r(f2,vecor([,]),^(-4)); [.999935557,.999862322 ] 445 eraţ > PolaRbere_r(f6,vecor([,-]),^(-4)); [ -.89843,.72656985 ] 25
Mădălna Roxana Bunec Meode de Opmzare Curs - 27 4 eraţ VII.3.7. Meode cvas-newon (Meode de mercă varablă) În cazul meodelor cvas-newon (meode de mercă varablă) drecţa de deplasare se alege sub forma v = - H f(x ) unde H ese o marce pozv defnă reprezenând o aproxmare a nverse hessane Hf(x ). În cele ce urmează noăm s = x + x ş y = f(x + ) - f(x ),. În cazul une funcţ părace src convexe f:r n R, adcă a une funcţ de forma f(x) = 2 <x,cx> + <x, d> cu C M n,n(r) o marce pozv defnă ş d R n un vecor fxa, avem f(x) = Cx + d ş Hf(x) = C penru orce x R n. Ca urmare: y = f(x + ) - f(x ) = C(x + - x ) = Cs, s = C - y, ar C = Hf(x j ) penru orce j. Plecând de la aceasă observaţe se vor căua H, aproxmaţ a nverselor marcelor Hf(x ), care să îndeplnească urmăoarele condţ: 26
Meode de Opmzare Curs 4. s = H + y penru orce, (condţa s = H + y se numeşe condţa secane, ar mplcaţa s = S y penru orce, - => s = S + y penru orce, - se numeşe propreaea de eredae) 2. H pozv defnă Marcele H vor f deermnae recursv: H + = H + D,. Algormul generc asoca meodelor cvas-newon aplca funcţlor părace ese schţa ma jos (se presupune x da ş H da, de exemplu H = I n ) : = ; câ mp f(x ) execuă pasul : v = - H f(x ) pasul 2: *se deermnă pasul de deplasare (opmal) asoca drecţe de deplasare v ; pasul 3: x + = x + v ; pasul 4: *se alege D asfel încâ H + = H + D să fe pozv defnă ş în plus, să fe îndeplne condţa secane ( H + y = s ) ş propreaea de eredae (H + y = s penru orce, -); : = +; Lema 39. Fe f:r n R o funcţe defnă prn f(x) = <x,cx> + <x, d>, cu 2 C M n,n (R) o marce pozv defnă ş d R n un vecor fxa, ş fe x R n. Fe un număr naural ş fe (x j ) j şrul defn prn x j+ = x j j H j f(x j ), j unde - Penru orce j, marcele H j sun pozv defne ş îndeplnesc condţa s = H j y penru orce, j- cu s = x + x ş y = f(x + ) - f(x ) - j ese pasul opmal asoca drecţe v j = - H j f(x j ). Aunc vecor s, s,..., s sun conjugaţ în rapor cu C do câe do. Demonsraţe. Observăm că penru orce s = x + x = v = - H f(x ) ar dn fapul că f(x) = Cx+d deducem că y = f(x + ) - f(x ) = Cs = Cv = - CH f(x ). 27
Mădălna Roxana Bunec Meode de Opmzare Curs - 27 Vom face demonsraţa prn nducţe după. Penru =, obţnem <s, Cs > = - <H f(x ), Cs > = - < f(x ), H Cs > = - < f(x ), H y > = - < f(x ), s > = <Cx + d, v > = <Cx + Cv, v > + <d, v > = <Cx, v > + <Cv, v > + <d, v >, ş ţnând con că = < f x, v > Cx, v d, v = < > < > < Cv, v > < Cv, v > < Cv, v > (conform, leme 35) rezulă că <s, Cs > =. Presupunem afrmaţa adevăraă penru ş o demonsrăm penru +. Avem <s +, Cs > = - + <H + f(x + ), Cs > = - + < f(x + ), H + Cs > = = - + < f(x + ), H + y > = - + < f(x + ), s > (39. ) Dn poeza de nducţe rezulă că s, s,..., s sun conjugaţ în rapor cu C do câe do, ş aplcând lema 37 rezulă că < f(x + ), s > = penru orce {,,...,}. Ma depare dn (39.) obţnem <s +, Cs > = - + < f(x + ), s > =. În consecnţă, s, s,..., s + sun conjugaţ în rapor cu C do câe do. În condţle leme 39 dacă la un momen da s = ( < n) aunc de fap v = sau echvalen f(x ) =. Aşadar x ese puncul de mnm al lu f (fnd punc saţonar al funcţe convexe f). Dacă s, s,..., s n- sun oţ nenul, aunc fnd conjugaţ în rapor cu C do câe do, rezulă că s, s,..., s n- sun lnar ndependenţ. Aunc ţnând con de fapul că s = H n y ş că y = Cs, de unde s =H n Cs penru orce =..n-, rezulă că H n = C -. Dec v n = -H n f(x n ) = -C - f(x n ). Aunc pasul opmal n asoca drecţe (Newon) v n = -C - f(x n ) ese n =. Ca urmare x n+ = x n - n H n f(x n ) = x n -C - (Cx n +d) = -C - d, Aşadar x n+ ese puncul de mnm al lu f (fnd punc saţonar al funcţe convexe f). Dec mnmul lu f ese deermna în urma a cel mul n+ eraţ. Aşa cum precza marcele H se deermnă recursv: H + = H + D,. 28
Meode de Opmzare Curs 4 Prezenăm în connuare re meode de alegere a marce D. Formula de corecţe de ordnul I presupune ulzarea pe pos de D a une marce de rang. Ma precs, căuăm D de forma D = a z ( z ), unde a R, a ş z R n. Deermnăm a ş z asfel încâ să fe îndeplnă condţa secane. Dn condţa secane rezulă Înmulţnd la sânga cu ( y ) (H + D )y = s H y + a z ( z, obţnem ) y = s ( y ) H y + a ( y ) z ( z ) y = ( y ) <y, H y > + a (<y, z >) 2 =<y, s > a = H y 2 < y,s > ( < y, z > ) Revennd la condţa secane H y + a z ( z ) s y = s, obţnem z = < > (s - H y ) a z, y de unde, D = a z ( z ) = a 2 a 2 < z, y > (s - H y ) (s - H y ) = = a ( < z, y > ) 2 ( < y, z > ) 2 H y y,s (s - H y ) (s - H y ) < > 2 < z, y > (s - H y ) (s - H y ) = ( s H y )( s H y ) H y < y,s > 29
Mădălna Roxana Bunec Meode de Opmzare Curs - 27 Arăăm prn nducţe după că dacă funcţa f ese păracă (f(x) = 2 <x,cx> + <x,d>, cu C smercă), H ese smercă ş dacă avem D = ( s H y )( s H y ) H y < y,s > aunc ese îndeplnă condţa H + y = s penru orce (H + = H + D ). Penru orce condţa ese îndeplnă penru = dn consrucţa lu D (char dacă funcţa f nu ese păracă). Ca urmare penru = afrmaţa ese adevăraă. Presupunem afrmaţa adevăraă penru ş o demonsrăm penru +. Penru orce,, avem H +2 y = (H + + D + ) y = H + y + ( + + )( + s H y s H y + + + ) + + + + < y,s H y > s H = s y + + + + < s H+ y, y > < + + + y,s H y > = s +( + + s, y H y, y ), y ( + + ) + ( + + s H+ y ) < > < > < > = s +( + + s, y y, H y ) + + + + y,s H+ y ( + + s H+ y ) < > < > < > = s +( + + s, y y, s ) + + + + y,s H+ y ( + + s H+ y ) < > < > < y,s H y > = s +( + + s, Cs Cs, s ) + + + + ( + + s H+ y ) < > < > < y,s H y > = s +( + + Cs, s Cs, s ) = s. Acualzarea marce H sub forma + + + + ( + + s H+ y ) < > < > < y,s H y > + + + + 3
Meode de Opmzare Curs 4 H + = H + D cu D = ( s H y )( s H y ) H y < y,s > Poară denumrea de formula de corecţe de rang. Dacă numorul <y,s H y > nu ese pozv, aunc pozv defnrea marce H + nu ese garanaă. Formula de corecţe de rang 2 Davdon-Flecher Powell (formula DFP) presupune H sub forma H + = H + D cu D = s s < > - s, y H y y H < y, H y > Arăăm că în cazul acese formule dacă H ese pozv defnă ş <s, y > >, aunc H + = H + D ese pozv defnă. Lema 4. Fe H o marce pozv defnă ş s y R n asfel încâ <s, y > >. Aunc H + = H + D ese pozv defnă, unde În plus, H + y = s. D = s s < > - s, y H y y H < y, H y > Demonsraţe. Să observăm ma înâ că dacă z R n ese un vecor nenul, aunc marcea I n - penru orce v R n avem zz ese pozv semdefnă. Înr-adevăr ese smercă ş < z,z > zz <v, v- < z,z > v> = <v, v> - <v, zz < z,z > v> =<v, v> - v zz v < z,z > = ( z v =<v, v> - )2 z,z < > = < z,z >< v, v > ( < z, v > ) 2 < z, z > Dacă H ese marce pozv defnă ş dacă y R n ese un vecor nenul, aunc H - Hyy H < y,hy > = H 2 I n 2 2 H yy H < y,hy > 2 H 3
Mădălna Roxana Bunec Meode de Opmzare Curs - 27 ese pozv semdefnă, deoarece I n 2 2 H yy H < y,hy > = I n - zz < z,z > cu z = 2 H y. În plus, y ese vecor propru asoca marce H = H - Hyy H < y,hy > asoca valor propr λ =, ar dmensunea subspaţulu corespunzăor ese. Aunc penru orce θ > ş orce s cu propreaea că <s, y>, rezulă că H +θss ese pozv defnă. Înlocund H prn H, y prn y, s prn s ş θ prn s ( s ) < > + s, y H y y H H - y, H y < > Avem H + y = (H + D )y = (H + s s y =H y + s y ese pozv defnă. s s < s, y > - y, H y H y y H y - y H y < s, y > H y y H < > )y se obţne că =H y + s H y = s Lema 4. Fe f:r n R o funcţe defnă prn f(x) = <x,cx> + <x, d>, cu 2 C M n,n (R) o marce pozv defnă ş d R n un vecor fxa, ş fe x R n. Fe (x ) şrul defn prn x + = x - H f(x ), unde - şrul de marce (H ) ese defn prn H = I n ş H + = H + D, cu D = s s < s, y > - y, H y H y y H < >, s = x + x ş y = f(x + ) - f(x ) - ese pasul opmal asoca drecţe v = - H f(x ). Aunc penru orce, s = H + y penru orce {,,,}. Demonsraţe. Observăm că penru orce 32
Meode de Opmzare Curs 4 s = x + x = v = - H f(x ) ar dn fapul că f(x) = Cx+d deducem că y = f(x + ) - f(x ) = Cs = Cv = - CH f(x ). Ca urmare <s, y > = <s, Cs > > penru orce s. Dec conform leme 4, marcele H sun pozv defne penru orce cu s (evden dacă s =, aunc ş y = ; ma mul, în aces caz s =y = penru orce ). Vom face demonsraţa prn nducţe după. Penru =, obţnem s =H y, egalae adevăraă conform leme 4. Presupunem că penru orce j s = H j y penru orce {,,,j-} ş demonsrăm că s = H + y penru orce {,,,}. Conform leme 39 vecor s, s,..., s sun conjugaţ în rapor cu C do câe do. Deoarece penru orce {,,..., -} <s, y > = <s, Cs > =, <s, y > = <s, Cs > =, obţnem H + y = (H + D )y = (H + = H y + < s,y >= s ( s ) s s < s, y > - y, H y < s, y > y - H = H y y y H - < y, H y > y H = s y y s - < y, H y > H y s = = s. < y,s >= H y y H < > )y < y, H y > y H y y H Fapul că H + y = s rezulă dn lema 4. 33
Mădălna Roxana Bunec Meode de Opmzare Curs - 27 Ca o consecnţă a leme 4 (ş leme 39) rezulă că penru o funcţe păracă f src convexă algormul Davdon-Flecher Powell ( DFP) converge la puncul de mnm al lu f după cel mul n+ eraţ. Convergenţa algormulu penru clase de funcţ ma generale ese o problemă deschsă. Până acum am opa penru aproxmarea a nverse hessane Hf(x ) cu o marce pozv defnă H verfcând condţle H y = s penru orce {,,..., -} unde s = x + x ş y = f(x + ) - f(x ),. Smlar puem opa penru aproxmarea hessane Hf(x ) cu o marce pozv defnă B verfcând condţle (B ) - y = s (sau echvalen, B s = y ) penru orce {,,..., -}. Se observă că în relaţle B s = y faţă de relaţle H y = s se schmbă rolul lu s cu y. Schmbând în formula de corecţe de rang 2 Davdon-Flecher Powell (formula DFP) rolul lu s cu y se obţne formula de corecţe de rang 2 Broyden-Flecher Goldfarb-Shanno (formula BFGS) B + = B + y y < y,s > - s,b s B s s B < > Smlar cu lema 4, dacă s y R n asfel încâ <s, y > >, aunc B + = B + y y < y,s > - s,b s B s s B < > ese pozv defnă. În plus, B + s = y. Dacă se folosesc acualzarea marce B aunc drecţa de deplasare se calculează că v = - (B ) - f(x ). Penru a nversa marcea B puem recurge la aşa numa formulă Sherman-Morrson: penru o marce nversablă A M n,n (R) ş do vecor u, v R n cu propreaea că + <v,a - u>, marcea A + uv ese nversablă ş (A+uv ) - = A - - A uv A. + v A u Noăm (B ) - = H ş aplcând formula Sherman-Morrson obţnem 34
B ( y ) y + < y,s > Meode de Opmzare Curs 4 H y y H = H - < y,s > + < y, H y > Aplcând încă o daă formula Sherman-Morrson obţnem H + = (B + ) - = H - + sau echvalen D = ( y ) H y < y,s > s s < y,s > - + < y,s > H + = H + D cu s s H y s s y H τ y H y τ = +. < y,s > < y,s > H y s s y H Dacă H ese marce pozv defnă ş dacă <s, y > >, aunc H + = H + D ese pozv defnă. În plus, H + y = s. Condţa <s, y > > ese echvalenă cu < f(x + ), s > > < f(x ), s > sau, deoarece s = v ( pasul de deplasare ar v drecţa de deplasare), < f(x + ), v > > < f(x ), v >. Aceasă negalae ese adevăraă dacă pasul sasface condţa Wolfe (7b). Convergenţa algormulu Broyden-Flecher Goldfarb-Shanno (BFGS) a fos demonsraă de Powell în 976. Algormul Broyden-Flecher Goldfarb-Shanno (BFGS) (x da) : = ; H := I n ; 35
Mădălna Roxana Bunec Meode de Opmzare Curs - 27 câ mp f(x ) execuă pasul : v = - H f(x ) pasul 2: *se deermnă pasul de deplasare subopmal îndeplnnd condţle Wolfe ( asoca drecţe de deplasare v ) pasul 3: x + : = x + v ; pasul 4: s : = x + x ; y : = f(x + ) - f(x ); y H y τ := +. < y,s > D := s s H y s s y H τ H + : = H + D ; : = +; < y,s > 36