Mathematics">
13 Sistemas Lineales VI Gradiente Conjugado
13 Sistemas Lineales VI Gradiente Conjugado
13 Sistemas Lineales VI Gradiente Conjugado
INTRODUCCIÓN
1
min 𝜙(𝑥) = 2 𝑥 𝑇 𝐴𝑥 − 𝑥 𝑇 𝑏
Es equivalente a resolver
𝐴𝑥 = 𝑏
Se sabe que una función de dos o más variables tiene un mínimo local en aquellos
puntos donde se cumplen las siguientes condiciones:
∇ 𝜙(𝑥) = 0
det(∇2 𝜙 𝑥 ) > 0
INTRODUCCIÓN
Para
1
𝜙(𝑥) = 2 𝑥 𝑇 𝐴𝑥 − 𝑥 𝑇 𝑏
Se tiene que
∇ 𝜙(𝑥) = 𝐴𝑥 − 𝑏
∇2 𝜙 𝑥 = 𝐴
𝑎11 𝑎12 𝑥1 𝑏1
𝑎21 𝑎22 𝑥2 =
𝑏2
1 𝑇 1 𝑎11 𝑎12 𝑥1 𝑏1
𝜙 𝑥 = 𝑥 𝐴𝑥 − 𝑥 𝑇 𝑏 = 𝑥1 𝑥2
𝑎21
𝑥
𝑎22 𝑥2 − 1
𝑥2
2 2 𝑏2
1
𝜙 𝑥 = 𝑎11 𝑥12 + 𝑎12 𝑥1 𝑥2 + 𝑎21 𝑥1 𝑥2 + 𝑎22 𝑥22 − 𝑥1 𝑏1 − 𝑥2 𝑏2
2
𝜕𝜙(𝑥)
𝜕𝑥1
∇ 𝜙(𝑥) =
𝜕𝜙(𝑥)
𝜕𝑥2
𝜕𝜙(𝑥)
= 𝑎11 𝑥1 + 12𝑎12 𝑥2 + 12𝑎21 𝑥2 − 𝑏1
𝜕𝑥1
𝜕𝜙(𝑥) 1
= 2𝑎12 𝑥1 + 12𝑎21 𝑥1 + 𝑎22 𝑥2 − 𝑏2
𝜕𝑥2
Si la matriz es simétrica, 𝑎12 = 𝑎21 y se tiene
𝜕𝜙(𝑥)
= 𝑎11 𝑥1 + 𝑎12 𝑥2 − 𝑏1
𝜕𝑥1
𝜕𝜙(𝑥)
= 𝑎21 𝑥1 + 𝑎22 𝑥2 − 𝑏2
𝜕𝑥2
𝜕𝜙(𝑥)
𝜕𝑥1 𝑎11 𝑎12 𝑥1 𝑏1
= 𝑎 𝑎22 𝑥2 −
𝜕𝜙(𝑥) 21 𝑏2
𝜕𝑥2
Por tanto,
∇ 𝜙(𝑥) = 𝐴𝑥 − 𝑏
𝜕 2 𝜙(𝑥) 𝜕
2 = 𝜕𝑥 (𝑎11 𝑥1 + 𝑎12 𝑥2 − 𝑏1 ) = 𝑎11
𝜕𝑥1 1
𝜕 2 𝜙(𝑥) 𝜕
= (𝑎 𝑥 + 𝑎12 𝑥2 − 𝑏1 ) = 𝑎12
𝜕𝑥1 𝜕𝑥2 𝜕𝑥2 11 1
𝜕 2 𝜙(𝑥) 𝜕
= (𝑎 𝑥 + 𝑎22 𝑥2 − 𝑏1 ) = 𝑎21
𝜕𝑥2 𝜕𝑥1 𝜕𝑥1 21 1
𝜕 2 𝜙(𝑥) 𝜕
= (𝑎 𝑥 + 𝑎22 𝑥2 − 𝑏1 ) = 𝑎22
𝜕𝑥12 𝜕𝑥2 21 1
𝜕 2 𝜙(𝑥) 𝜕 2 𝜙(𝑥)
𝜕𝑥12 𝜕𝑥1 𝜕𝑥2 𝑎11 𝑎12
∇2 𝜙 𝑥 = 2 2 = 𝑎 𝑎22
𝜕 𝜙(𝑥) 𝜕 𝜙(𝑥) 21
Entonces
∇2 𝜙 𝑥 = 𝐴
MÉTODO DE DESCENSO SIMPLE
𝑥 𝑘+1 = 𝑥 𝑘 + 𝛼𝑘 𝑝𝑘
En la ecuación
𝑥 𝑘+1 = 𝑥 𝑘 + 𝛼𝑘 𝑝𝑘
𝑥 𝑘+1 = 𝑥 𝑘 + 𝛼𝑘 𝑝𝑘
𝑟𝑘 = 𝐴𝑥 𝑘 − 𝑏
MÉTODO DE DESCENSO DE GRADIENTE
Algoritmo
𝑥 𝑘+1 = 𝑥 𝑘 − 𝛼𝑘 𝑟𝑘
End
→ Número máximo de iteraciones alcanzado
MÉTODO DE DIRECCIONES CONJUGADAS
Otra forma muy conveniente para este problema en particular, es utilizar un conjunto
especial de direcciones llamadas direcciones conjugadas, las cuales cumplen con la
siguiente propiedad
= 0si𝑖 ≠ 𝑗
𝑝𝑖𝑇 𝐴𝑝𝑗 →
≠ 0si𝑖 = 𝑗
Demostración:
𝑥 ∗ − 𝑥 0 = 𝜎0 𝑝0 + 𝜎1 𝑝1 + 𝜎2 𝑝2 + ⋯ + 𝜎𝑛−1 𝑝𝑛−1
𝑝𝑘𝑇 𝐴 𝑥 ∗ − 𝑥 0 = 𝜎0 𝑝𝑘𝑇 𝐴𝑝0 + 𝜎1 𝑝𝑘𝑇 𝐴𝑝1 + 𝜎2 𝑝𝑘𝑇 𝐴𝑝2 + ⋯ + 𝜎𝑘 𝑝𝑘𝑇 𝐴𝑝𝑘 + ⋯ + 𝜎𝑛−1 𝑝𝑘𝑇 𝐴𝑝𝑛−1
𝑝𝑘𝑇 𝐴 𝑥 ∗ − 𝑥 0
𝜎𝑘 =
𝑝𝑘𝑇 𝐴𝑝𝑘
MÉTODO DE DIRECCIONES CONJUGADAS
𝑥 𝑘 = 𝑥 0 + 𝛼0 𝑝0 + 𝛼1 𝑝1 + 𝛼2 𝑝2 + ⋯ + 𝛼𝑘−1 𝑝𝑘−1
𝑝𝑘𝑇 𝐴𝑥 𝑘 = 𝑝𝑘𝑇 𝐴𝑥 0 + 𝛼0 𝑝𝑘𝑇 𝐴𝑝0 + 𝛼1 𝑝𝑘𝑇 𝐴𝑝1 + 𝛼2 𝑝𝑘𝑇 𝐴𝑝2 + ⋯ + 𝛼𝑘−1 𝑝𝑘𝑇 𝐴𝑝𝑘−1
𝑝𝑘𝑇 𝐴𝑥 𝑘 = 𝑝𝑘𝑇 𝐴𝑥 0
𝑝𝑘𝑇 𝐴(𝑥 𝑘 −𝑥 0 ) = 0
𝑝𝑘𝑇 𝐴 𝑥 ∗ − 𝑥 𝑘 −𝑝𝑘𝑇 𝐴𝑥 𝑘 − 𝑏
𝜎𝑘 = = = 𝛼𝑘
𝑝𝑘𝑇 𝐴𝑝𝑘 𝑝𝑘𝑇 𝐴𝑝𝑘
MÉTODO DE DIRECCIONES CONJUGADAS
Finalmente
𝑥 ∗ − 𝑥 0 = 𝛼0 𝑝0 + 𝛼1 𝑝1 + 𝛼2 𝑝2 + ⋯ + 𝛼𝑛−1 𝑝𝑛−1
𝑥 ∗ = 𝑥 0 + 𝛼0 𝑝0 + 𝛼1 𝑝1 + 𝛼2 𝑝2 + ⋯ + 𝛼𝑛−1 𝑝𝑛−1
𝑥 𝑘+1 = 𝑥 𝑘 + 𝛼𝑘 𝑝𝑘
MÉTODO DE DIRECCIONES CONJUGADAS
Las direcciones conjugadas están relacionadas con los eigenvectores de la matriz del
sistema. Para un sistema de 2x2 tienen la siguiente interpretación geométrica:
MÉTODO DE DIRECCIONES CONJUGADAS
Las direcciones conjugadas están relacionadas con los eigenvectores de la matriz del
sistema. Para un sistema de 2x2 tienen la siguiente interpretación geométrica:
MÉTODO DE DIRECCIONES CONJUGADAS
Algoritmo
𝑥 𝑘+1 = 𝑥 𝑘 + 𝛼𝑘 𝑝𝑘
End
→ Número máximo de iteraciones alcanzado
MÉTODO DE GRADIENTE CONJUGADO
Esta propiedad permite calcular la dirección 𝑝𝑘 como una combinación lineal entre el
gradiente de la función 𝑟𝑘 (o residuo) y la dirección conjugada anterior 𝑝𝑘−1 , lo que
permite ahorrar muchas operaciones y memoria. La primera dirección 𝑝0 se escoge
igual a la dirección contraria al gradiente, por lo que 𝑝0 = −𝑟0
𝑝𝑘 = −𝑟𝑘 + 𝛽𝑘 𝑝𝑘−1
𝑝𝑘𝑇 𝐴𝑟𝑘+1
𝛽𝑘+1 = 𝑇
𝑝𝑘 𝐴𝑝𝑘
MÉTODO DE GRADIENTE CONJUGADO
Algoritmo original
𝑟0 = 𝐴𝑥 0 − 𝑏
𝑝0 = −𝑟0
For(k=0 to MAXIT, step 1)
−𝑝𝑘𝑇 𝑟𝑘
𝛼𝑘 =
𝑝𝑘𝑇 𝐴𝑝𝑘
𝑘+1 𝑘
𝑥 = 𝑥 + 𝛼𝑘 𝑝𝑘
𝑟𝑘+1 = 𝐴𝑥 𝑘+1 − 𝑏
IF( 𝑟𝑘+1 <e1) → Solución
𝑝𝑘𝑇 𝐴𝑟𝑘+1
𝛽𝑘+1 =
𝑝𝑘𝑇 𝐴𝑝𝑘
𝑝𝑘+1 = −𝑟𝑘+1 + 𝛽𝑘+1 𝑝𝑘
End
→ Número máximo de iteraciones alcanzado
MÉTODO DE GRADIENTE CONJUGADO
𝑥 𝑘+1 = 𝑥 𝑘 + 𝛼𝑘 𝑝𝑘
𝑟𝑘+1 = 𝑟𝑘 + 𝛼𝑘 𝐴𝑝𝑘
MÉTODO DE GRADIENTE CONJUGADO
Se cumple también que 𝑟𝑖𝑇 𝑟𝑘 = 0 para 𝑖 = 0,1,2, ⋯ , 𝑘 − 1 . Esto permite realizar las
siguientes simplificaciones
𝑇 𝑇 𝑇
𝑟𝑘+1 𝑟𝑘+1 𝑟𝑘+1 𝑟𝑘+1 𝑟𝑘+1 𝑟𝑘+1
𝛽𝑘+1 = = =
−𝑝𝑘𝑇 𝑟𝑘 − −𝑟𝑘 + 𝛽𝑘 𝑝𝑘−1 𝑇 𝑟𝑘 𝑟𝑘𝑇 𝑟𝑘
MÉTODO DE GRADIENTE CONJUGADO
−𝑝𝑘𝑇 𝑟𝑘 𝑟𝑘𝑇 𝑟𝑘
𝛼𝑘 = 𝑇 =
𝑝𝑘 𝐴𝑝𝑘 𝑝𝑘𝑇 𝐴𝑝𝑘
Algoritmo práctico
𝑟0 = 𝐴𝑥 0 − 𝑏
𝑝0 = −𝑟0
For(k=0 to MAXIT, step 1)
𝑟𝑘𝑇 𝑟𝑘
𝛼𝑘 =
𝑝𝑘𝑇 𝐴𝑝𝑘
𝑘+1 𝑘
𝑥 = 𝑥 + 𝛼𝑘 𝑝𝑘
𝑟𝑘+1 = 𝑟𝑘 + 𝛼𝑘 𝐴𝑝𝑘
IF( 𝑟𝑘+1 <e1) → Solución
𝑇
𝑟𝑘+1 𝑟𝑘+1
𝛽𝑘+1 =
𝑟𝑘𝑇 𝑟𝑘
𝑝𝑘+1 = −𝑟𝑘+1 + 𝛽𝑘+1 𝑝𝑘
End
→ Número máximo de iteraciones alcanzado
NOTAS SOBRE GRADIENTE CONJUGADO