Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PARA LA RESOLUCION DE
PROBLEMAS NO-LINEALES
DE OPTIMIZACION
𝐷𝑓(𝑥; 𝑑) = 𝛻𝑓(𝑥)𝑡 𝑑
Para obtener la dirección de máximo descenso de la función 𝑓 en un punto 𝑥є ℝ𝑛 tal que 𝛻𝑓(𝑥) ≠ 0,
se debe resolver el problema
min 𝛻𝑓(𝑥)𝑡 𝑑
𝑑є ℝ𝑛
‖𝑑‖2 = 1
𝛻𝑓(𝑥)
𝑑=−
‖𝛻𝑓(𝑥)‖
𝑑 = −𝛻𝑓(𝑥)
Observaciones:
1) En cada etapa 𝛼𝑘 , llamado el paso del método en la etapa (k + 1)-ésima, debe verificar:
𝛻𝑓(𝑥 𝑘 + 𝛼𝑑𝑘 ) ∙ 𝑑 𝑘 = 0
Que en general será una ecuación difícil de resolver exactamente en α. Por esta razón se utilizan pasos
αk que serán aproximaciones del paso exacto, determinados por algún método de elección de paso,
como se verá más adelante.
Ejemplo:
Entonces 𝑋 0 = (1,1) 𝑦 𝐾 = 0
𝑑1 = −𝛻𝑓(𝑋1 )
𝑑′ 𝑑′ 𝑑′
𝛻𝑓(𝑥) = ( 𝑓(𝑥), 𝑓(𝑥), … … . . 𝑓(𝑥))
𝑑𝑥1 𝑑𝑥2 𝑑𝑥𝑛
𝑑′
𝑓(𝑥) = 2𝑥1 + 4
𝑑𝑥1
𝑑′
𝑓(𝑥) = 4𝑥2 − 4
𝑑𝑥2
Recordando que:
𝑋 0 = (1,1)
𝛻𝑓(1,1) = (6,0)
−𝛻𝑓(1,1) = (−6,0)
‖∇𝑓(𝑥 𝑘 )‖ = 0
Evaluamos:
‖∇𝑓(𝑥 0 )‖ = √(6)2 + 02 = 6
6≥0
∝𝑘 ≥ 0
Entonces:
∝0 ≥ 0
Como:
𝑋 0 = (1,1) y 𝑑0 = (−6,0)
Entonces:
Recordando que:
Entonces:
Simplificando
𝑔0 (∝0 ) = 36 ∝0 2 − 36 ∝0 + 3
Derivando:
𝑔0 ′(∝0 ) = 72 ∝0 − 36
Si
∝0 ≥ 0
72 ∝0 − 36 = 0
1
∝0 =
2
4.- Calcular
𝑋 𝐾+1 = 𝑋 𝐾 +∝𝑘 𝑑𝑘
1 1
𝑔0 ( ) = 𝑓 ((1,1) + (−6,0)) = 𝑓(−2,1)
2 2
Entonces:
𝑋1 = (−2,1) 𝑦 𝐾 = 1
Volvemos al paso 1
𝑋 0 = (−2,1)
𝛻𝑓(−2,1) = (2((−2) + 2), 4((1) − 1))
𝛻𝑓(−2,1) = (0,0)
−𝛻𝑓(−2,1) = (0,0)
‖∇𝑓(𝑥 𝑘 )‖ = 0
Evaluamos:
‖∇𝑓(𝑥 0 )‖ = √(0)2 + 02 = 0
El método del gradiente conjugado es el método iterativo más utilizado para resolver
grandes sistemas lineales de ecuaciones. El método del gradiente conjugado es efectivo
para sistemas de la forma:
𝐴𝑥̅ = 𝑏̅
En donde:
𝑥̅ : vector desconocido
𝑏̅: vector conocido
𝐴: matriz cuadrada simétrica y definida positiva
Función cuadrática
Se denomina función cuadrática a toda función escalar definida sobre un espacio vectorial de
dimensión n de la forma:
1 𝑡
𝑓(𝑥̅ ) = 𝑥̅ 𝐴𝑥̅ − 𝑏̅ 𝑡 𝑥̅ + 𝑐
2
En donde:
A: matriz cuadrada
𝑥̅ 𝑦 𝑏̅: vectores
c: constante escalar.
Se demostrará posteriormente que, si A es una matriz simétrica definida positiva, f alcanza un mínimo
en la solución de 𝐴𝑥̅ = 𝑏̅.
Se ilustrarán algunos de los conceptos que vayan surgiendo con el siguiente ejemplo:
3 −2 4 𝑥1
𝐴=( ), 𝑏̅ = ( ) , 𝑐 = 0, 𝑥̅ = (𝑥 )
−2 4 8 2
1 𝑡
𝑓(𝑥̅ ) = 𝑥̅ 𝐴𝑥̅ − 𝑏̅ 𝑡 𝑥̅ + 𝑐
2
1 𝑥 𝑥
𝑓(𝑥1 , 𝑥2 ) = (𝑥1 𝑥2 ) [ 3 −2] ( 1 ) − (4 8) ( 1 ) + 𝑐
2 −2 4 𝑥2 𝑥2
1
𝑓(𝑥1 , 𝑥2 ) = (𝑥1 𝑥2 ) ( 3𝑥1 − 2𝑥2 ) − (4𝑥1 + 8𝑥2 )
2 −2𝑥1 + 4𝑥2
1 1
𝑓(𝑥1 , 𝑥2 ) = 𝑥1 (3𝑥1 − 2𝑥2 ) + 𝑥2 (−2𝑥1 + 4𝑥2 ) − (4𝑥1 + 8𝑥2 )
2 2
3 2
𝑓(𝑥1 , 𝑥2 ) = 𝑥 − 𝑥1 𝑥2 − 𝑥1 𝑥2 + 2𝑥2 2 − 4𝑥1 − 8𝑥2
2 1
𝟑
𝒇(𝒙𝟏 , 𝒙𝟐 ) = 𝟐 (𝒙𝟏 )𝟐 + 𝟐(𝒙𝟐 )𝟐 − 𝟐𝒙𝟏 𝒙𝟐 − 𝟒𝒙𝟏 − 𝟖𝒙𝟐 (a)
Curvas de nivel de la forma cuadrática (a), a cada elipse le corresponde un valor constante de f
Debido a que la matriz A es definida positiva, la superficie definida por f en ℛ 2 tiene la forma de un
paraboloide.
El hecho de que en ℛ 2 f sea un paraboloide permite interpretar geométricamente el que A sea una
matriz definida positiva: la función f alcanza un mínimo absoluto y a partir del punto en el que alcanza
dicho mínimo la función crece en todas las direcciones. Si A no es definida positiva, se pueden dar
los siguientes casos:
A puede ser definida negativa, en este caso la función f sería un paraboloide abierto hacia
abajo, alcanzaría un máximo absoluto y a partir del punto en el que se alcanzase el máximo la
función decrecería en todas las direcciones.
A puede ser una matriz singular en cuyo caso la solución de (1), de existir, no sería única:
existirían infinitos puntos críticos formando una recta o un plano dependiendo del rango de A.
En los casos en los que A no es definida ni singular, sería una matriz indefinida. En estos casos
el punto x¤ sería un “punto silla" y tanto el método del gradiente como el método del gradiente
conjugado fallarían.
Dada la siguiente gráfica:
Se puede decir:
𝜕
𝑓(𝑥̅ )
𝜕𝑥1
𝜕
)
𝑓 ´ (𝑥̅ ) = ∇𝑓(𝑥̅ ) = 𝜕𝑥2 𝑓(𝑥̅
⋮
𝜕
𝑓(𝑥̅ )
(𝜕𝑥𝑛 )
El gradiente es un campo vectorial que tiene la importante propiedad de que, en un punto dado, 𝑥̅ , el
vector de campo correspondiente apunta en la dirección del máximo crecimiento de f. Derivando
parcialmente 𝑓(𝑥̅ )
1 1
∇𝑓(𝑥̅ ) = 𝐴̅𝑡 𝑥̅ + 𝐴𝑥̅ − 𝑏̅
2 2
∇𝑓(𝑥̅ ) = 𝐴𝑥̅ − 𝑏̅
Si igualamos el gradiente a cero, la solución del sistema será 𝐴𝑥̅ = 𝑏̅, donde 𝑥̅ que ahora será 𝑥̅ ∗ , es
un punto crítico de 𝑓(𝑥̅ ). Si la matriz A, además de ser simétrica se define positiva, entonces la
solución del sistema 𝐴𝑥̅ = 𝑏̅ es un mínimo de f.
Por tanto todo lo anterior implica que la solución de 𝐴𝑥̅ = 𝑏̅ se puede calcular buscando 𝑥̅ ∗ que
minimice 𝑓(𝑥̅ ).
Supóngase que se utiliza el método del gradiente para resolver un sistema de dos ecuaciones con dos
incógnitas: 𝐴𝑥̅ = 𝑏̅ (𝐴 ∈ 𝑀2 (ℛ)), simétrica y definida positiva). La representación geométrica de las
dos primeras iteraciones del método del gradiente aparece en la figura siguiente.
Nos podríamos plantear modificar el método del gradiente eligiendo una dirección de descenso
distinta al gradiente en la segunda iteración: la dirección que une x1 con la solución exacta 𝑥̅ ∗ . En este
caso tendríamos un método que obtiene la solución exacta en dos iteraciones. El problema es cómo
determinar esta nueva dirección sin conocer la solución exacta del sistema.
𝑑̅∗1 = 𝑥̅ ∗ − 𝑥̅ 1 = 𝑥̅ ∗ − 𝑥̅ 0 − 𝜌0 𝑑̅ 0
Proposición: Los vectores 𝑑̅0 𝑦 𝑑̅∗1 son conjugados respecto a la matriz A, es decir se cumple que:
(𝑑̅ 0 )𝑡 𝐴𝑑̅∗1 = 0
Por otro lado 𝑑̅∗1 se puede expresar como combinación lineal de 𝑟̅ 1 𝑦 𝑑̅ 0, de la siguiente forma:
𝑑̅∗1 = 𝛽1 𝑟̅ 1 + 𝛽2 𝑑̅0
No es preciso obtener el vector 𝑑̅∗1 , basta con determinar cuál es su dirección, para ello se realiza lo
siguiente:
1 1 𝛽2
𝑑̅1 = 𝑑̅∗ = 𝑟̅ 1 + 𝑑̅ 0 = 𝑟̅ 1 + 𝛼0 𝑑̅ 0
𝛽1 𝛽1
Por lo tanto se tiene expresada la dirección que pasa por 𝑥̅ 1 y 𝑥̅ ∗ en función de datos que se han
calculado en la primera iteración. Por tanto, se puede diseñar un nuevo método para resolver un
sistema de dos ecuaciones y dos incógnitas (el método del gradiente conjugado):
Esquema iterativo:
𝑑̅ 0 = 𝑟̅ 0 = 𝑏̅ − 𝐴𝑥̅ 0
𝑡
(𝑑̅0 ) . 𝑑̅ 0
𝜌0 = 𝑡
(𝑑̅ 0 ) 𝐴𝑑̅ 0
𝑥̅ 1 = 𝑥̅ 0 + 𝜌0 𝑑̅ 0
𝑟̅ 1 = 𝑏̅ − 𝐴𝑥̅ 1
𝑡
(𝑑̅ 0 ) 𝐴𝑟̅ 1
𝛼0 = − 𝑡
(𝑑̅ 0 ) 𝐴𝑑̅ 0
𝑑̅1 = 𝑟̅ 1 + 𝛼0 𝑟̅ 0
𝑟̅ 1 . 𝑑̅1
𝜌1 = 𝑡
(𝑑̅1 ) 𝐴𝑑̅1
̅𝟐 = 𝒙
𝒙 ̅𝟏
̅𝟏 + 𝝆𝟏 𝒅 𝑺𝑶𝑳𝑼𝑪𝑰Ó𝑵 𝑬𝑿𝑨𝑪𝑻𝑨
𝑑̅ 𝑖 = 𝑟̅ 𝑖 + 𝛼𝑖−1 𝑑̅ 𝑖−1
Con
𝑡
(𝑑̅ 𝑖−1 ) 𝐴𝑟̅ 𝑖
𝛼𝑖−1 = − 𝑡
(𝑑̅𝑖 −1 ) 𝐴𝑑̅ 𝑖−1
Por lo tanto, el esquema iterativo para resolver un sistema de n ecuaciones con n incógnitas (𝐴𝑥̅ = 𝑏̅)
mediante el método del gradiente conjugado:
𝑑̅ 0 = 𝑟̅ 0 = 𝑏̅ − 𝐴𝑥̅ 0
𝑟̅ 0 . 𝑑̅ 0
𝜌0 = 𝑡
(𝑑̅ 0 ) 𝐴𝑑̅ 0
𝑥̅ 1 = 𝑥̅ 0 + 𝜌0 𝑑̅ 0
𝑟̅ 1 = 𝑏̅ − 𝐴𝑥̅ 1
𝑡
(𝑑̅ 0 ) 𝐴𝑟̅ 1
𝛼0 = − 𝑡
(𝑑̅ 0 ) 𝐴𝑑̅ 0
𝑑̅1 = 𝑟̅ 1 + 𝛼0 𝑟̅ 0
𝑟̅ 𝑖 . 𝑑̅ 𝑖
𝜌𝑖 = 𝑡
(𝑑̅ 𝑖 ) 𝐴𝑑̅ 𝑖
𝑥̅ 𝑖+1 = 𝑥̅ 𝑖 + 𝜌𝑖 𝑑̅ 𝑖
𝑑̅ 𝑖+1 = 𝑟̅ 𝑖+1 + 𝛼𝑖 𝑑̅ 𝑖
MÉTODO DEL GRADIENTE DE FLETCHER Y REEVES
Corresponde a la versión del método del gradiente conjugado en el caso de una función f general.
Paso Inicial
Paso Principal
Ejemplo:
En casa iteración, 𝑑1 esta dado por −∇𝑓(𝑦1 ), y 𝑑2 esta dado por 𝑑2 = −∇𝑓(𝑦2 ) + 𝛼1 𝑑1, donde
‖∇𝑓(𝑦 )‖2
𝛼1 = ‖∇𝑓(𝑦2 )‖2 . Además, 𝑦𝑗+1 se obtiene por la optimización de 𝑑𝑗 , empezando desde 𝑦𝑗 . A la
1
iteración 4, el punto 𝑦2 = (2.185, 1.094)𝑡 , el cual está muy cerca del punto óptimo (2.00, 1.00), que
es buscado.
Como la norma del gradiente es igual a 0.02, que es suficientemente pequeña, nos detenemos aquí. La
tabla de resumen de las iteraciones del método Flecher – Reeves, se muestra en la siguiente tabla.
REFERENCIAS
Dr. Gonzalo Hernández Oliva, Métodos Clásicos de Optimización para Problemas No-
Lineales sin Restricciones, UChile - Departamento de Ingeniería Matemática, 07 de Mayo
2006