(Created page with "==Un método cuasi-Newton para funciones reales de dos variables basado en la minimización del número de condición de la matriz de actualización .== '''José Jacobo Olive...") |
|||
(4 intermediate revisions by 2 users not shown) | |||
Line 15: | Line 15: | ||
==1 Introducción== | ==1 Introducción== | ||
− | Los problemas de minimización de funciones tienen gran importancia por sus múltiples aplicaciones y llevan a la resolución de sistemas de ecuaciones ya que tenemos que encontrar los puntos críticos de la función que se minimiza. Resolver ecuaciones tiene gran importancia por si mismo, ya que aparecen con frecuencia en muchas aplicaciones. En particular, los sistemas de ecuaciones aparecen en los métodos numéricos para resolver ecuaciones diferenciales ordinarias, como el método de Euler implícito que es un caso de los llamados métodos | + | Los problemas de minimización de funciones tienen gran importancia por sus múltiples aplicaciones y llevan a la resolución de sistemas de ecuaciones ya que tenemos que encontrar los puntos críticos de la función que se minimiza. Resolver ecuaciones tiene gran importancia por si mismo, ya que aparecen con frecuencia en muchas aplicaciones. En particular, los sistemas de ecuaciones aparecen en los métodos numéricos para resolver ecuaciones diferenciales ordinarias, como el método de Euler implícito que es un caso de los llamados métodos BDF (por sus siglas en inglés Backward Differentiation Formulas) <span id='citeF-1'></span>[[#cite-1|[1]]]. Por lo anterior, se ha puesto especial atención en el desarrollo de métodos para la resolución de estas ecuaciones tanto lineales como no lineales. En este trabajo, se propone un método cuasi-Newton para resolver ecuaciones no lineales y se muestra que para cierta clase de funciones produce mejores resultados que los conocidos métodos DFP y BFGS. También se implementa este método y el BFGS en el Método Implícito de Euler y se halla que producen resultados similares. |
A continuación, se presenta el planteamiento del problema de minimización que interesa en este trabajo. | A continuación, se presenta el planteamiento del problema de minimización que interesa en este trabajo. |
José Jacobo Oliveros Oliveros, Julio Andrés Acevedo Vázquez, Juan Alberto Escamilla Reyna
In this work, a quasi-Newton method is proposed to solve unconstrained non-linear equations based on the minimization of the condition number of the updating matrix considering the Frobenius norm. The convergence of the method is proved using fixed point theory. Some numerical examples are presented to show the performance of the method, and it is compared with the classical DFP and BFGS methods. The results show that the method proposed here is feasible, and for certain kinds of problems, the solution is obtained using fewer iterations and less computing time than the other ones. The method is applied to solve systems of ordinary differential equations. The results obtained are compared with the ones obtained with the BFGS method. These results show that the two methods have a similar performance.
Keywords: cuasi-Newton, condition number.
En este trabajo, se propone un método cuasi-Newton para resolver ecuaciones no lineales sin restricciones, que se basa en la minimización del número de condición de la matriz de actualización, considerando la norma de Frobenius. La convergencia del método es probada usando teoría del punto fijo. Se presentan algunos ejemplos numéricos para mostrar el desempeño del método y es comparado con los métodos clásicos DFP y BFGS. Los resultados muestran que el método propuesto es factible y que para cierta clase de problemas, obtiene la solución utilizando menos iteraciones que los otros. El método es aplicado para resolver sistemas de ecuaciones diferenciales ordinarias. Los resultados obtenidos son comparados con aquellos obtenidos con el método BFGS. Estos resultados muestran que los dos métodos tiene un desempeño similar.
Palabras clave: cuasi-Newton, número de condición.
Los problemas de minimización de funciones tienen gran importancia por sus múltiples aplicaciones y llevan a la resolución de sistemas de ecuaciones ya que tenemos que encontrar los puntos críticos de la función que se minimiza. Resolver ecuaciones tiene gran importancia por si mismo, ya que aparecen con frecuencia en muchas aplicaciones. En particular, los sistemas de ecuaciones aparecen en los métodos numéricos para resolver ecuaciones diferenciales ordinarias, como el método de Euler implícito que es un caso de los llamados métodos BDF (por sus siglas en inglés Backward Differentiation Formulas) [1]. Por lo anterior, se ha puesto especial atención en el desarrollo de métodos para la resolución de estas ecuaciones tanto lineales como no lineales. En este trabajo, se propone un método cuasi-Newton para resolver ecuaciones no lineales y se muestra que para cierta clase de funciones produce mejores resultados que los conocidos métodos DFP y BFGS. También se implementa este método y el BFGS en el Método Implícito de Euler y se halla que producen resultados similares.
A continuación, se presenta el planteamiento del problema de minimización que interesa en este trabajo.
Sea una función suave. Consideremos el siguiente problema
|
(1) |
El primer método cuasi-Newton (denotado por DFP) fue creado por Davidon, Fletcher y Powell [2,3], demostrando que este método era más eficaz que los métodos existentes. El método DFP es un método de búsqueda en la linea que considera una aproximación cuadrática de la función objetivo en la iteración . Tenemos la siguiente notación: , y donde denota el hessiano de la función , por lo que la aproximación está dada por
|
(2) |
donde es una matriz simétrica definida positiva de tamaño , que se actualizará en cada iteración. La matriz no es el hessiano de la función , pero es una aproximación de ella. Notemos que y dado que es una función convexa, alcanza el mínimo en
|
(3) |
el cual será usado en la nueva iteración
|
(4) |
donde la longitud de paso se escoge de tal forma que cumpla las condiciones de Wolfe.
Un requerimiento que parece razonable pedir en es que el gradiente de debe coincidir con el gradiente de la función objetivo en al menos dos iteraciones y . Obsérvese que , así que la segunda de estas condiciones se satisface. La primera condición puede ser escrita como
|
(5) |
Para simplificar la ecuación anterior se definen los vectores
|
(6.a) |
|
(6.b) |
Así, la ecuación (5) se reescribe como
|
(7) |
la cual es conocida como la ecuación secante.
Del hecho de que la matriz es definida positiva y por la ecuación secante, se tiene que
|
(8) |
La desigualdad anterior es conocida como la condición de curvatura.
Cuando la función es fuertemente convexa, la condición de curvatura se cumplirá, para cualesquiera dos puntos y , pero no siempre se cumplirá cuando la función no es convexa. En este último caso, se tiene que forzar a que se cumpla (8) imponiendo las condiciones de Wolfe o las condiciones fuertes de Wolfe en [4].
Cuando la condición de curvatura se cumple, la ecuación secante (7) tiene infinitas soluciones, ya que hay grados de libertad en una matriz simétrica y la ecuación secante representa condiciones y hay condiciones más como consecuencia de que la matriz es definida positiva, pero estas condiciones no absorben los grados de libertad restantes. Así, hay infinitas maneras de elegir la matriz de actualización , lo que da la posibilidad de proponer diferentes métodos que se adapten al problema que se está estudiando.
En esta sección se explicará brevemente la manera en que se construyeron los métodos DFP y BFGS usuales. Notamos que, aunque los dos métodos se construyen de manera muy similar, éstos poseen propiedades muy distintas.
Una manera de determinar es pidiendo que, entre todas las matrices simétricas que cumplen la ecuación secante, debe ser la más cercana a la matriz actual , en otras palabras, tenemos que resolver el siguiente subproblema
|
(9.a) |
|
(9.b) |
donde y satisfacen la condición de curvatura y es una matriz simétrica definida positiva. Muchas normas pueden ser usadas en (9.a) y cada una de ellas da lugar a un método cuasi-Newton distinto. Una norma que permite una fácil resolución del problema es la norma pesada de Frobenius
|
(10) |
El peso puede ser escogido como cualquier matriz que satisfaga la relación . Se asume , donde es el hessiano promedio, dado por
|
(11) |
Fácilmente puede verificarse que .
Con la norma y matriz de peso descritas arriba, la única solución de (9) es
|
(12) |
donde
Esta fórmula es llamada la fórmula de actualización DFP, ya que fue propuesta por Davidon en 1959 [2], y posteriormente estudiada, implementada y popularizada por Fletcher y Powell [3].
Sea . Usando la fórmula de Sherman-Morrison-Woodbury [4] y la ecuación (12) se sigue que
|
(13) |
Esto resulta útil, ya que nos permite calcular la dirección de búsqueda simplemente con una multiplicación matriz-vector.
Nótese que los últimos dos términos del lado derecho de (13) son matrices de rango 1, así es una modificación de rango 2. Esa es la idea fundamental de la actualización cuasi-Newton, en lugar de recalcular la actualización desde cero, se aplica una simple modificación que combina la información recientemente observada de la función objetivo con el conocimiento existente en nuestra aproximación de la hessiana actual.
Calcular , donde es calculado mediante un procedimiento de búsqueda en la línea que satisfaga las condiciones de Wolfe,
con Definir y . Calcular por medio de (13).
| |||||||||
Algoritmo. 1 Algoritmo DFP |
La fórmula del método BFGS puede ser derivado haciendo un simple cambio en el argumento que lleva a (12). Las condiciones impuestas en las aproximaciones del hessiano , pueden ser impuestas en sus inversas . Por lo tanto, la actualización debe ser simétrica, definida positiva, y satisfacer la ecuación secante (7), ahora escrita como
La condición de la cercanía a es ahora especificada de forma análoga a (9)
|
(16.a) |
|
(16.b) |
La norma considerada es de nuevo la norma pesada de Frobenius descrita anteriormente, donde la matriz de peso es ahora cualquier matriz que satisfaga . (Por concreción, se asume de nuevo que está dado por el inverso del hessiano promedio definida en (11)). La única solución de (16) está dada por
|
(17) |
donde
|
(18) |
o bien, desarrollando las multiplicaciones
|
(19) |
La demostración del siguiente teorema puede encontrarse en [5].
Teorema 1: Si la fórmula de actualización (19), es ahora escrita como , entonces resuelve el problema
|
donde satisface y .
De acuerdo con Nocedal [4], si es definida positiva, entonces es definida positiva.
Calcular , donde es calculado mediante un procedimiento de búsqueda en la línea que satisfaga las condiciones de Wolfe (1). Definir y . Calcular por medio de (19).
| |||
Algoritmo. 2 Algoritmo BFGS |
Como se vio en la sección anterior, se puede conseguir distintos métodos cuasi-Newton si se cambia el subproblema que determina la matriz de actualización, tal subproblema puede adaptarse a la naturaleza misma de la función. Cuando se considera funciones con error, los métodos anteriores pueden presentar problemas de convergencia o de velocidad, por ello, en esta sección se cambia el subproblema y se le pide a la matriz de actualización que tenga el menor número de condición. En [6], se utiliza también un criterio que se basa en el menor número de condición para el método de gradiente conjugado.
Considere la función definida por
|
(22) |
donde y , el punto inicial , una tolerancia de y la matriz identidad como matriz inicial. En este ejemplo, representa un error que emula los diferentes errores que se pueden presentar, tales como error de mediciones, truncamientos, redondeo de la máquina, etc. Los resultados de la implementación se muestran a continuación
![]() |
Figura 1: Resultados de los métodos DFP y BFGS para el punto inicial . |
Se observa que los métodos DFP y BFGS no convergen a la solución del problema, lo cual es debido a la presencia de errores. Esto nos lleva a plantear la posibilidad de elegir a la matriz de una manera diferente.
Como se vio anteriormente, el método DFP puede ser modificado si se cambia el problema que lleva a la obtención de la actualización . Tomando en cuenta que la presencia de errores provocó que los métodos DFP y BFGS no convergieran, un requerimiento que parece razonable, es pedir que la siguiente matriz tenga el menor número de condición, es decir, que en lugar de resolver (9) se resuelve
|
(23.a) |
|
(23.b) |
donde está dado por , con valores propios de la matriz (se verá que la matriz obtenida es definida positiva y por lo tanto la dirección de paso será de descenso). Se enfatiza cuál es la razón de usar este método:
Al pedir el menor número de condición, se trata de que la búsqueda de la dirección de descenso por esta vía, sea menos sensible a los errores.
Supongamos que es una función de a . Consideramos , y
|
(24) |
En este caso el número de condición está dado por
|
(25) |
donde y denotan la traza y el determinante de , respectivamente. Ahora bien, dado que la matriz tiene que ser simétrica y cumplir la ecuación secante, tenemos que
|
|
de donde se obtiene que
|
|
|
|
Sustituyendo las ecuaciones anteriores en (25), se obtiene una función de a , la cual se minimiza calculando la primera derivada (respecto a ) e igualándola a 0. Con lo cual se obtiene que
|
que al sustituirlo en las expresiones de y se llega a
|
Con lo cual se obtienen las entradas de la matriz a la cual llamaremos , ya que es la que tiene el menor número de condición (minor condition number), la cual resuelve el subproblema (23). Además, sustituyendo el valor de en la expresión del determinante, se obtiene que es definida positiva. Haciendo los cálculos y simplificaciones necesarias se sigue que
|
(29) |
donde . Notemos que, tanto el primer sumando como el segundo son matrices de rango 1.
Con el fin de que en la dirección de búsqueda no se tenga que calcular el inverso de la matriz anterior, denotamos por , teniendo así una expresión del inverso de (29)
|
(30) |
donde .
Siguiendo la idea de la construcción del método DFP, lo que se requiere es que sea la matriz que resuelva el problema (9) con la misma norma , pero con una matriz de peso adecuada. Así, el problema ahora es encontrar de tal forma que y
|
Notando que y son matrices simétricas se tiene que
|
Además, de la restricción y haciendo un análisis análogo al realizado para se obtiene que
|
Si se denota por , y , se tiene que
|
Obteniendo los puntos estacionarios de la expresión anterior (con respecto a ), obtenemos que
|
(33) |
Sustituyendo (33) en (31) y (32), se halla a la matriz de peso .
Definimos ahora, un algoritmo que encuentre la solución de (1)
Calcular , donde es calculado mediante un procedimiento de búsqueda en la línea que satisfaga las condiciones de Wolfe (1). Definir y . Calcular por medio de (30).
| |||
Algoritmo. 3 Algoritmo MCN |
Para analizar la convergencia del método MCN, usaremos los resultados dados en [7], en donde los métodos cuasi-Newton son analizados utilizando técnicas de punto fijo, se demuestran resultados de convergencia y se hallan tasas de convergencia.
En lo que sigue, se dará un resumen de las definiciones y resultados que están en [7]. Con esto, podremos demostrar la convergencia que nos interesa. Aunque los resultados mostrados en esta sección, son utilizados para resolver sistemas de ecuaciones no lineales, estos pueden ser utilizados en la optimización de funciones ya que nos interesa resolver el sistema .
Sean un espacio lineal (vectorial) de dimensión finita, , , . Se consideran los métodos iterativos definidos por
|
(35) |
Definición 1: Decimos que es un punto fijo de si y sólo si,
|
(36) |
El objetivo de los algoritmos del tipo (35) es el de aproximar los puntos fijos de . Notemos que los métodos cuasi-Newton pertenecen a esta clase de métodos, ya que si consideramos , , , definimos
|
(37) |
Claramente, el conjunto de puntos tales que para todo , es el conjunto de soluciones de . Los métodos definidos por forman la familia de métodos cuasi-Newton para resolver sistemas de ecuaciones no lineales.
Se establecen condiciones suficientes para que la sucesión definida por (35) esté bien definida y converja a un punto fijo de con una convergencia lineal. Se consideran dos suposiciones, A1 y A2 que se establecen a continuación.
Suposición A1. Sea un conjunto abierto y convexo, una norma en , un espacio lineal de dimensión finita, una norma en , un subconjunto abierto de . Supongamos que es continua, y que la derivada de con respecto a existe y es continua, para todo , . Denotamos por la matriz Jacobiana de con respecto a . Supongamos que:
|
(38) |
para todo , . Esto implica que para todo , ,
|
(39) |
donde
|
(40) |
|
(41) |
Suposición A2. Existe tal que
|
(42) |
Lema 1: Suponga que satisfacen las Suposiciones A1 y A2. Sea . Entonces, existen tales que
|
(43) |
siempre que , .
Teorema 2: Suponga que satisfacen las Suposiciones A1 y A2. Sea . Entonces, existen tales que, si y para todo , entonces la sucesión generada por (35) está bien definida, converge a y satisface
|
(44) |
para todo .
Para el caso de los métodos cuasi-Newton, a fin de verificar la condición (42), se debe calcular que en este caso está dada por:
|
de donde se tiene que cumplir
|
Si se toma , se tiene .
Teorema 3: Suponga que y la sucesión satisfacen las hipótesis del Teorema 2. Suponga además que para todo y que
|
(45) |
Entonces
|
(46) |
Corolario 1: Bajo las hipótesis del Teorema 3, si , entonces
|
Teorema 4: Suponga que satisfacen las Suposiciones A1 y A2, y que . Suponga que una sucesión es generada por (35) y que, para todo
|
(47) |
para algún . Entonces, existe tal que si , la sucesión está bien definida, converge a y satisface
|
(48) |
Habíamos visto que en el caso de los métodos cuasi-Newton, . Así,
|
y
|
Por lo tanto, la condición (45) se convierte en
|
Esto es equivalente a
|
(49) |
Esta es la condición de Dennis-Walker de convergencia de los métodos cuasi-Newton a una tasa ideal (ver [8]). Ya que el método MCN es un método cuasi-Newton, se deduce su convergencia. Más aún, la convergencia del MCN está dada por (49).
En esta sección, se compara numéricamente el método MCN con los métodos DFP y BFGS para dos tipos de funciones. Para ello, se implementaron los tres métodos en el lenguaje de programación MATLAB. Se considera dos casos: con error y sin error en los datos de la función. Para la función del ejemplo 2, el MCN obtuvo mejores resultados que los otros dos, lo que justifica la propuesta.
Se consideró la siguiente función para la primera prueba
|
con el punto inicial , una tolerancia de y la matriz identidad como matriz inicial. Se obtuvieron los resultados mostrados en la Figura 2 (que corresponde a una ventana emergente del lenguaje de programación):
![]() |
Figura 2: Resultados de los métodos. |
![]() |
Figura 3: Gráfica de la función. |
Se puede observar que el método DFP no converge a la solución, mientras que el MCN y el BFGS si lo hacen. Además, se observa que el método BFGS utiliza un menor número de iteraciones. Una posible explicación de este hecho, es que la función de estudio tiene una buena inclinación lo que hace que el Hessiano promedio para el método BFGS arroje mejores resultados que el método MCN. La Tabla 1 muestra los resultados obtenidos usando los programas elaborados para diferentes puntos iniciales. En algunos de estos puntos, el método DFP no converge. Notar que en los puntos en los que converge el método DFP, lo hace en menos iteraciones que el MCN. El Método BFGS fue el que generó los mejores resultados.
BFGS [tiempo] | DFP [tiempo] | MCN [tiempo] | |
(-10,17) | 61 [10.55] | - | 76 [14.86] |
(10,-17) | 21 [3.04] | 27 [3.68] | 31 [4.45] |
(-10,-17) | 17 [2.7] | 18 [2.63] | 37 [5.59] |
(10,17) | 56 [9.92] | - | 62 [12.94] |
(2,1) | 12 [1.75] | 15 [2.05] | 17 [2.38] |
(-2,1) | 10 [1.63] | 11 [1.72] | 28 [4.1] |
(-2,-1) | 11 [1.71] | 11 [1.69] | 39 [5.94] |
(2,-1) | 14 [2.11] | 24 [3.33] | 26 [3.61] |
A continuación veremos un ejemplo en la que la función no tiene la buena inclinación mencionada arriba y el método MCN obtiene mejores resultados que los otros dos.
Consideremos ahora la función
|
con el punto inicial , una tolerancia de y la matriz identidad como matriz inicial. Los resultados de la implementación se muestran a continuación
![]() |
Figura 4: Resultados de los tres métodos utilizados. El MCN utiliza un menor número de iteraciones y consume menos tiempo de cómputo. |
![]() |
Figura 5: Gráfica de la función . |
BFGS [tiempo] | DFP [tiempo] | MCN [tiempo] | |
(2,1) | 32 [4.39] | 526 [73] | 13 [2.15] |
(-2,1) | 31 [3.95] | 936 [129.07] | 13 [1.75] |
(-2,-1) | 32 [4.49] | 526 [70.42] | 13 [2.29] |
(2,-1) | 31 [4.02] | 936 [132.79] | 13 [1.88] |
(3,1) | 24 [3.69] | 977 [137.59] | 15 [2.94] |
Consideremos la función (52) del ejemplo anterior, pero le agregaremos un error, por lo que la función a minimizar ahora es
|
(54) |
donde está definido por
|
(55) |
Se hizo uso del mismo punto inicial , tolerancia y matriz inicial. Los resultados obtenidos fueron los siguientes
![]() |
Figura 6: Resultados de los métodos. |
![]() |
Figura 7: Gráfica de la función . |
BFGS [tiempo] | DFP [tiempo] | MCN [tiempo] | |
(2,1) | 30 [4.8] | - | 13 [2.36] |
(-2,1) | 31 [4.81] | - | 13 [2.35] |
(-2,-1) | 29 [4.41] | - | 14 [3.09] |
(2,-1) | 28 [4.71] | 372 [90.37] | 14 [2.41] |
(3,1) | 33 [5.42] | - | 15 [2.71] |
En este caso, puede observarse que el método MCN fue que que obtuvo mejores resultados, ya que converge en aproximadamente la mitad de iteraciones que el método BFGS, mientras que el método DFP en la mayoría de los casos no converge y en caso de converger, lo hace en número de iteraciones mucho mayor. Además, consume aproximadamente la mitad de tiempo de cómputo.
Consideramos la misma función (54), donde está definido por (52) y ahora
|
(56) |
Se consideró el punto inicial , una tolerancia de y la matriz identidad como matriz inicial. En la Figura 8 se muestran los resultados obtenidos.
![]() |
Figura 8: Resultados de los métodos considerando error. |
![]() |
Figura 9: Gráfica de la función considerando errores. |
BFGS [tiempo (seg)] | DFP [tiempo (seg)] | MCN [tiempo (seg)] | |
(2,1) | 32 [5.47] | 729 [125.09] | 14 [2.72] |
(1,2) | 32 [5.53] | 371 [70.48] | 14 [3.14] |
(3,1) | - | - | 15 [2.63] |
(-3,1) | 29 [4.99] | 218 [51] | 13 [3.04] |
(3,-1) | 29 [4.91] | 218 [54.7] | 13 [6.33] |
(-3,-1) | - | - | 15 [2.75] |
De los ejemplos vistos, podemos notar que el método MCN tiene un mejor comportamiento (incluso mejor que el BFGS) en los casos donde hay presencia de errores o la función objetivo es "muy plana cerca del mínimo. El tipo de error considerado tiene por objetivo ilustrar el desempeño de los métodos analizados aquí ya que puede considerarse una buena representación de los errores cometidos en la práctica. En [9], se considera que tanto la función como su gradiente tienen error acotado en la norma uniforme. Este caso, podría considerarse para probar el desempeño del MCN.
Como se comentó anteriormente, los sistemas no lineales aparecen en la solución numérica de sistemas de ecuaciones diferenciales no lineales. En esta sección, vamos a considerar el caso de un sistema de la forma:
|
(57) |
|
(58) |
con condiciones iniciales
|
(59) |
Las funciones y son suficientemente suaves. Supongamos que las funciones y cumplen las condiciones del Teorema de Existencia y Unicidad dado en [10], por lo cual el problema de valor inicial (57)-(59) tiene una única solución en algún intervalo del eje que contiene a . Deseamos determinar valores aproximados y de las soluciones , en los puntos , con .
En notación vectorial, el problema de valor inicial (57)-(59) puede ser escrito como
|
(60) |
donde es un vector con componentes y , es el vector de funciones con componentes y y es el vector con componentes .
Uno de los métodos que se utiliza para hallar la solución numérica del sistema (60), es el método de Euler que consiste en considerar la fórmula
|
(61) |
Las condiciones iniciales son usadas para determinar , el cual es el vector tangente a la gráfica de la solución en el plano . Nos movemos en dirección de este vector tangente por un paso de tiempo con el fin de encontrar el siguiente punto . Después, calculamos un nuevo vector tangente , nos movemos a lo largo de éste por un paso de tiempo para encontrar , y así sucesivamente.
Una variación del método de Euler puede ser obtenido de la siguiente manera. Dado que es una solución del problema de valor inicial (60), obtenemos
|
(62) |
Aproximando la derivada en (62) por el cociente de diferencias hacia atrás obteniendo
|
o bien
|
(63) |
|
Algoritmo. 4 El Método de Euler Implícito |
Aunque la implementación del Algoritmo 4 parece sencilla, tenemos el problema de resolver el sistema de ecuaciones (63). Es en este momento donde hacemos uso del método MCN. El sistema de ecuaciones podemos plantearlo como un problema de optimización haciendo
|
y trabajando con el problema de optimización
|
Se compara el desempeño del MCN y del BFGS en el Método de Euler Implícito (MEI). Para ello, se elaboraron programas en el sistema MATLAB para resolver problemas de valores iniciales por medio del MEI. En todos los casos se usó como punto inicial, la matriz identidad como matriz inicial y una tolerancia de .
Consideremos el problema dado en [1], el cual involucra un sistema lineal de coeficientes constantes no homogéneo de dimensión 2.
|
(64) |
El problema tienen la siguiente solución exacta
|
(65) |
Se tomaron un total de 1 000 puntos de la partición del intervalo temporal . En la Figura 10a, se muestran la solución exacta del sistema y la obtenida usando el método BFGS en el MEI. En la Figura 10b, se muestran la solución exacta del sistema y la obtenida usando el MCN. Obsérvese que las aproximaciones son tan cercanas a la solución, que las gráficas prácticamente están sobrepuestas.
En este ejemplo, el método MCN hizo un promedio de 3.9310 iteraciones, tardando en promedio 0.2775 segundos en cada paso para la resolución del sistema, mientras que el método BFGS hace un promedio de 3.9670 iteraciones, tardando en promedio 0.2783 segundos en cada paso para la resolución del sistema. Así, el MCN tiene un mejor desempeño que el BFGS. Nótese que el error relativo es mayor en los puntos en los que se alcanzan máximo y mínimos.
![]() |
![]() |
(a) Solución con el método BFGS. | (b) Solución con el método MCN. |
Figura 10: Solución numérica encontrada usando los dos métodos. |
Ahora, consideremos el problema no lineal dado en [1].
|
(66) |
El problema tienen la siguiente solución exacta
|
(67) |
Se tomaron un total de 2 000 puntos de la partición del intervalo temporal . En la Figura 12a, se muestran la solución exacta del sistema y la obtenida usando el método BFGS en el MEI. En la Figura 12b, se muestran la solución exacta del sistema y la obtenida usando el MCN.
![]() |
![]() |
(a) Solución con el método BFGS. | (b) Solución con el método MCN. |
Figura 12: Solución numérica encontrada usando los dos métodos. |
En este ejemplo, el método MCN hizo un promedio de 2.4345 iteraciones, tardando en promedio 0.1846 segundos en cada paso para la resolución del sistema, mientras que el método BFGS hace un promedio de 2.7170 iteraciones, tardando en promedio 0.1855 segundos en cada paso para la resolución del sistema. Así, el MCN tuvo un mejor desempeño que el BFGS.
Ahora, consideremos el problema no lineal
|
(68) |
con . El problema tienen la siguiente solución exacta
|
(69) |
Se tomaron un total de 1 000 puntos de la partición del intervalo temporal . En la Figura 14a, se muestran la solución exacta del sistema y la obtenida usando el método BFGS en el MEI. En la Figura 14b, se muestran la solución exacta del sistema y la obtenida usando el MCN.
![]() |
![]() |
(a) Solución con el método BFGS. | (b) Solución con el método MCN. |
Figura 14: Solución numérica encontrada usando los dos métodos. |
En este ejemplo, el método MCN hizo un promedio de 1 iteración, tardando en promedio 0.3006 segundos en cada paso para la resolución del sistema, mientras que el método BFGS hace un promedio de 1 iteración, tardando en promedio 0.2907 segundos en cada paso para la resolución del sistema. Obsérvese que, como en los casos anteriores, las aproximaciones son tan cercanas a la solución, que las gráficas prácticamente están sobrepuestas.
En la Figura 15, se muestran los errores, tanto absolutos como relativos, cometidos por los dos métodos en cada entrada de la solución del sistema. Se observa que el desempeño es similar en ambos métodos.
Ahora, consideremos el ejemplo dado en [10] dado por un modelo de Lotka-Volterra
|
(70) |
donde y denotan la población de presa y depredador, respectivamente. Se tomaron un total de 7 000 puntos de la partición del intervalo temporal . En la Figura 16a, se muestra la solución obtenida usando el método BFGS en el MEI. En la Figura 16b, se muestra la solución obtenida usando el MCN.
![]() |
![]() |
(a) Solución con el método BFGS. | (b) Solución con el método MCN. |
Figura 16: Solución numérica encontrada usando los dos métodos. |
En este ejemplo, el método MCN hizo un promedio de 2.8163 iteraciones, tardando en promedio 0.4433s en cada paso para la resolución del sistema, mientras que el método BFGS hace un promedio de 2.6409 iteraciones, tardando en promedio 0.4064s en cada paso para la resolución del sistema.
Se propone un método cuasi-Newton que tiene como criterio minimizar el número de condición de la matriz de actualización. Esto con la intención de manejar la sensibilidad ante errores en los datos. Se da una fórmula explícita para la actualización en el caso bidimensional. Se ilustra con ejemplos la factibilidad del método. Se distingue el caso sin error y con error. En el primero de ellos, puede observarse que, aunque todos los métodos convergen a la solución, el método DFP lo hace en un número mayor de iteraciones. Esto es acorde con lo reportado en la literatura. Por otra parte, los métodos BFGS y MCN intercambian su rol de mejor opción, dependiendo del tipo de función que se esté minimizando. Para el Ejemplo 1, el método BFGS requiere menos iteraciones que el MCN pero para el Ejemplo 2, sucede lo contrario. Pasando ahora al caso con error, el método MCN converge con menos iteraciones en ambos casos presentados. Aún más, con algunos puntos iniciales no convergen ni el método DFP ni el BFGS. Así, se muestra que el método puede mejorar los resultados tanto en iteraciones como en convergencia para cierta clase de funciones, a saber, aquellas en las que la matriz del sistema para la actualización es mal condicionada.
Se implementó el MCN en el método implícito de Euler para resolver sistema de dos ecuaciones diferenciales ordinarias no lineales. Se comparó su desempeño con el BFGS en el mismo método implícito de Euler con cuatro ejemplos encontrándose que los dos métodos obtienen resultados similares tanto en número de iteraciones como tiempo de cómputo.
[1] Lambert, J. D. (1991) "Numerical Methods for Ordinary Differential Systems: The Initial Value Problem". John Wiley & Sons, Inc.
[2] Davidon, W C. (1959) "VARIABLE METRIC METHOD FOR MINIMIZATION", Volume. Technical Report ANL–5990 (revised), Argonne National Laboratory
[3] Fletcher, R. and Powell, M. J. D. (1963) "A Rapidly Convergent Descent Method for Minimization", Volume 6. The Computer Journal 2 163-168
[4] Nocedal, Jorge and Wright, Stephen J. (2006) "Numerical optimization". Springer, 2nd Edition
[5] M. Bazaraa and H. Sherali and C. M. Shetty. (2006) "Unconstrained Optimization". Nonlinear Programming. John Wiley & Sons, Ltd 343-467
[6] Neculai Andrei. (2020) "Nonlinear Conjugate Gradient Methods for Unconstrained Optimization", Volume. Springer International Publishing, 1st Edition
[7] Martínez, José Mario. (1992) "Fixed-Point Quasi-Newton Methods", Volume 29. SIAM Journal on Numerical Analysis 5 1413-1434
[8] J. E. Dennis and Homer F. Walker. (1981) "Convergence Theorems for Least-Change Secant Update Methods", Volume 18. Society for Industrial and Applied Mathematics. SIAM Journal on Numerical Analysis 6 949–987
[9] Xie, Yuchen and Byrd, Richard H. and Nocedal, Jorge. (2020) "Analysis of the BFGS Method with Errors", Volume 30. SIAM Journal on Optimization 1 182-209
[10] William E. Boyce and Richard C. DiPrima. (2000) "Elementary differential equations and boundary value problems.". Elementary differential equations and boundary value problems. John Wiley, 7th Edition
[11] Fletcher, R. (2000) "Newton-Like Methods". Practical Methods of Optimization. John Wiley & Sons, Ltd 44-79
Published on 12/11/21
Submitted on 30/10/21
Volume 5, 2021
Licence: CC BY-NC-SA license
Are you one of the authors of this document?