Sunteți pe pagina 1din 2

Algortmul Hestens- Stiefel

1. Se dă o funcție pătratică f(x,y) = x^2 + 2*x*y + y^2 -2*x – 3*y


2. Calculăm gradientul funcției
F’x = 2*x + 2*y -2
F’y = 2*x + 2*y -3
3. Calculăm hessiana = A
A (2 2, 2 2)^T
4. Alegem un x(0), fie x(0) = (0,0) …………………x = 0, y=0
5. Calculăm gradientul fucntiei in x(0)
Grad (f(x(0)) = (-2, -3)^T
6. Verificăm condiția de a trece la pasul următor pentr a calcula x(1)
Grad f(x(0)) diferit de 0, deci trecem la pasul următor.
7. Calculăm direcția in pasul x(0)
d(0) = -grad f(x(0)) = - (-2,-3) = (2,3)
8. Calculăm x(1)
X(1) = x(0) + alfa(0)*d(0), alfa(0) ---???,
8.1 Calculcăm alfa(0)
Calcul[m de sus Alfa1(0) = [(-2,-3)^T * (2 = -4+(-9) = -13
3)
Clacul[m de jos (numitor) [(2 2, 2 2)* (2, 3) = (4 + 6, 4+6) = (10, 10)
(10,10)^T * (2,3) = 20+30 = 50
Alfa (0) = - (-13/50) = 13/50 = 0,26
9. Calculam x(1)
10. X(1) = x(0) + alfa(0)*d(0), alfa(0) = 0,26
X(1) = (0,0)^t + 0,26*(2,3)^t = (0,0)^t + (0.52 , 0,78)^t = (0.52 , 0.78)

Repatam algormtiul incepind cu pasul 6.

11. Verific[m conditia de a trece la pasul urm[tor.


Grad f(x1) = grad f (0.52 , 0.78) = (2*x + 2*y -2 , 2*x + 2*y -3) = (0.6 , – 0.4)

12. X(2) = x(1) + alfa(1)*d(1), alfa(1)---???, d(1) ----????


13. Calculam directia d(1)

D(k+1) = - grad f (k+1) + [ (x(k+1)^2 + y(k+1)^2) / (x(k)^2+y(k)^2)] * d(k), unde x ;I y sunt coordonatele punctului
x(x,y)

D(1) = - (0.6 , -0.4) + [ (0.36 + 0,16) / (4+9)] * (2 , 3 )^t = (-0.6 , 0.4) + 0.04 * (2, 3)^t = (-0.6 , 0.4) + ( 0.08 , 0.12) =
(-0.52 , 0.52)

X1 = 0.6

Y 1= -0.4

X0 = -2

Y0 = -3

S-ar putea să vă placă și