Metodo de La Maxima Pendiente

17
MÉTODO DE LA MÁXIMA PENDIENTE I. Introducción Uno de los métodos más antiguos para minimizar una función de varias variables es el método de la máxima pendiente, también llamado método del gradiente o método del descenso. El método de la Máxima Pendiente converge a la solución generalmente sólo de manera lineal, pero es de naturaleza global, esto es, a partir de casi cada valor inicial se produce convergencia, aunque estos valores iniciales sean deficientes. En consecuencia, con él se logran aproximaciones iniciales suficientemente exactas para las técnicas que tienen como base el método de Newton, del mismo modo que el método de la bisección se utiliza en una sola ecuación. El método de la Máxima Pendiente determina un mínimo local para una función de varias variables de la forma g: lR n lR. El método es de gran utilidad independientemente de su aplicación como primer método para resolver los sistemas no lineales. La conexión entre el problema de minimizar una función de lR n en lR y la resolución de un sistema de ecuaciones no lineales reside en el hecho de que un sistema lineal de la forma: f 1 ( x 1 ,x 2 ,…,x n ) =0 , f 2 ( x 1 ,x 2 ,…,x n ) =0 , f n ( x 1 ,x 2 ,…,x n ) =0

Transcript of Metodo de La Maxima Pendiente

Page 1: Metodo de La Maxima Pendiente

MÉTODO DE LA MÁXIMA PENDIENTE

I. Introducción

Uno de los métodos más antiguos para minimizar una función de varias variables es el método de la máxima pendiente, también llamado método del gradiente o método del descenso.

El método de la Máxima Pendiente converge a la solución generalmente sólo de manera lineal, pero es de naturaleza global, esto es, a partir de casi cada valor inicial se produce convergencia, aunque estos valores iniciales sean deficientes. En consecuencia, con él se logran aproximaciones iniciales suficientemente exactas para las técnicas que tienen como base el método de Newton, del mismo modo que el método de la bisección se utiliza en una sola ecuación.

El método de la Máxima Pendiente determina un mínimo local para una función

de varias variables de la forma g: lRn→lR. El método es de gran utilidad independientemente de su aplicación como primer método para resolver los sistemas no lineales.

La conexión entre el problema de minimizar una función de lRn en lR y la resolución de un sistema de ecuaciones no lineales reside en el hecho de que un sistema lineal de la forma:

f 1 ( x1 , x2 , …, xn )=0 ,

f 2 ( x1 , x2 , …, xn )=0 ,

⋮⋮

f n ( x1 , x2 , …, xn )=0

tiene una solución en x=( x1 , x2 , …, xn )t=0justo cuando la función g definida

por:

g ( x1 , x2, …, xn )=∑i=1

n

[ f 1(x1 , x2 ,… , xn)]2

tiene valor mínimo cero.

En el método de la Máxima Pendiente para encontrar un mínimo local de una

función cualquiera g de lRn en lR puede describirse de manera intuitiva como sigue:

→ Evaluar la función g en una aproximación inicial x(0)=(x1( 0) , x2

( 0) , …,xn(0 ))t.

→ Determinar una dirección que, desde x (0 ), se origine una disminución del valor deg.

Page 2: Metodo de La Maxima Pendiente

→ Desplace una cantidad apropiada hacia esta dirección y llame al nuevo

vector x (1 ).

→ Repetir los tres pasos anteriores sustituyendox (0 )por x (1 ).

Antes de describir cómo seleccionar la dirección correcta y la distancia apropiada que se recorre en dicha dirección, es preciso repasar algunos resultados del cálculo infinitesimal.

Teorema 1.Teorema de la valores extremos

Este teorema establece que una función diferenciable de una sola variable puede tener un mínimo relativo sólo cuando su derivada sea cero.

Para extender este resultado a las funciones de varias variables se necesita la siguiente definición.

Definición 1. Si g: lRn→lR, se define el gradiente de g en

x=( x1 , x2 , …, xn )t=0, que se denota con ∇ g (x) y se define por medio

de:

∇ g ( x )=( ∂ g∂ x1

(x) ,∂ g∂ x2

( x) , …,∂ g∂ xn

(x ))t

El gradiente de una función de varias variables es el análogo a la derivada de una función de varias variables en el sentido de que una función de varias variables diferenciable puede tener un mínimo local en un punto x sólo cuando su gradiente en x es el vector cero.

El gradiente tiene otra propiedad muy importante en relación con la minimización de las funciones de varias variables. Supóngase que

v=(v1 , v2 , …, vn)t es un vector unitario de lRn; es decir:

‖v‖22=∑

i=1

n

v i2=1

Definición 2.La derivada direccional de g en x en la dirección de v está definida por:

Page 3: Metodo de La Maxima Pendiente

Dv g ( x )=limh → 0

1h

[g ( x+hv )−g (x)]=v t∗∇ g ( x ) .

La derivada direccional de g en x en la dirección de v mide la variación de los valores de la función g con respecto a los cambios de su variable en la dirección de v.

Cuando g es una función de dos variablesFigura 1

Page 4: Metodo de La Maxima Pendiente

Un resultado estándar del cálculo infinitesimal de las funciones de varias variable se establece que si la función g es diferenciable, la dirección en la que se obtiene la derivada direccional de mayor tamaño se obtiene cuando v es paralelo al gradiente∇ g (x), siempre y cuando ∇ g (x)≠ 0. En consecuencia, la dirección de la máxima disminución de los valoresde g desde x es la dirección dada por −∇ g (x).

Puesto que el objetivo es reducirg(x )a su valor mínimo de cero, dada la

aproximación inicial x(1), se toma:

x(1)= x(0)−α∇ g(x(0))

para alguna constante α >0.

El problema, entonces, se reduce a escoger un valor de α de manera que g ( x (1 )) sea significativamente menor que g ( x (0 ) ). Si se quiere determinar una elección

apropiada del valor de α , considerense la función de una sola variable

h (α )=g(x(0)−α∇ g(x(0)))

El valor de α que minimiza h es el valor que se requiere en la ecuación (**).

Para obtener directamente un valor mínimo de h se requiere derivar h, y luego resolver un problema de cálculo de raíces para determinar los puntos críticos de h. Este procedimiento es generalmente demasiado costoso en términos de cálculos necesarios. Por ello se seleccionan tres puntos α 1<α 2<α3 que, se

espera, estén cerca de donde h(α )alcanza su valor mínimo. A continuación, se

construye el polinomio de segundo grado P ( x )que interpola h en α 1, α 2 y α 3.

Tomamos un valor α̂ en [α 1 , α 3 ] tal que P( α̂)sea el mínimo de P ( x ) en [α 1 , α 3 ] y

usando P( α̂)como aproximación del valor mínimo de h(α ).

Entonces α̂es el valor que se utiliza para determinar la nueva iteración en la búsqueda del valor mínimo de g:

x(1)= x(0)− α̂∇ g(x(0))

Como ya se dispone de g ( x (0 ) ), para reducir el esfuerzo computacional en lo

posibleel primer punto que se escoge es α 1=0. A continuación, se toma un punto α 3 tal queh (α 3 )<h (α1). (Dado que α 1 no es el mínimo de h, dicho número α 3si

existe). Finalmente se decide que α 2 sea igual aα3

2.

…… (**)

Page 5: Metodo de La Maxima Pendiente

El punto α 3 donde se alcanza el valor mínimo de P ( x ) en [α 1 , α 3 ] es el único

puntocrítico de P o el punto extremo derecho del intervalo α 3 porque, por

suposición,P (α 3 )=h ( α3 )<h ( α1 )=P (α 1).Dado que P ( x ) es un polinomio de

segundo grado dichopunto crítico se puede determinar fácilmente.

II. Algoritmo matemático del método 

Para aproximar una solución p al problema de minimización

g ( p )=minx∈Rn

g(x )

Dada una aproximación inicial x:

Entrada: número de n variables; aproximación inicial x=( x1 , x2 , …, xn )t, tolerancia TOL; número máximo de iteraciones N.

Salida: solución aproximada x=( x1 , x2 , …, xn )t o un mensaje de falla.

Paso 1. Tome k = 1.Paso 2. Mientras (k ≤ N ), haga los pasos 3-15.

Paso 3. Tome g1=g ( x1 , x2 , …, xn ); (Nota: g1=g( x¿¿ (k ))¿)

z=∇g ( x1 , x2 , …, xn); (Nota: z=∇g (x¿¿(k))¿)

z0=‖z‖2

Paso 4. Si z0=0, entonces SALIDA (‘Gradiente cero’);

SALIDA( x1 , x2 , …, xn , g1); (Procedimiento terminado, pude tener un

mínimo.) PARAR. Paso 5. Tome z = z/z0; (convierta a z en un vector unidad.)

α 1=0;α 3=1;

g3=g (x−α 3 z ).

Paso 6. Mientras (g3 ≥ g1), hago los pasos 7 y8.

Paso 7. Tomeα 3=α 3/2;g3=g (x−α 3 z )

Paso 8. Si α 3<TOL/2, entonces SALIDA (‘Mejora poco probable’);

SALIDA( x1 , x2 , …, xn , g1); (Procedimiento terminado, pude tener un mínimo.)

Page 6: Metodo de La Maxima Pendiente

PARAR.

Paso 9. Tomeα 2=α 3/2g2=g (x−α 2 z).

Paso 10. Tome h1=(g2−g1)/α 2;

h2=(g3−g2)/(α3−α2);h3=(h2−h1)/α3.

(Nota: La formula de las diferencias divididas hacia delante de Newton sirve para encontrar el cuadrático P (α )=g1+h1 α+h3 α (α−α 2) que interpola h (α )en α=0, α=α2 y α=α3 ).

Paso 11. Tome α 0=(α 2−h1 ¿h3); (el punto crítico de P ocurreα 0)

g0=g (x−α 0 z ).

Paso 12. Obtenga α de {α0 , α3 } tal que g=g ( x−αz )=mín {g0, g3 }

Paso 13.Tome x = x – αz

Paso 14. Si |g−g1|<TOL, entonces

SALIDA ( x1 , x2 , …, xn , g ); (Procedimiento terminado exitosamente) PARAR

Paso 15. Tome k = k + 1Paso 16. SALIDA (‘Número máximo de iteraciones excedido ’). (Procedimiento terminado sin éxito). PARAR

III. Ejemplo

Sea el sistema no lineal de ecuaciones siguiente:

f 1 ( x1 , x2 , …, xn )=3 x1−cos ( x2 x3 )−12=0 ,

f 2 ( x1 , x2 , …, xn )=x12−81 ( x2+0.1 )2+sen x3+1.06=0 ,

Page 7: Metodo de La Maxima Pendiente

f 3 ( x1 , x2 , …, xn )=e−x1 x2+20 x3+10 π−3

3=0

Mediante el método de la Máxima Pendiente calcúlese la aproximación de la

solución, comenzando en el punto inicialx(0)=(0,0,0)t.

Solución:

Sea g ( x1 , x2, x3 )=[ f 1 ( x1 , x2 , x3 )]2+[ f 2 ( x1 , x2 , x3 )]2+[ f 3 ( x1 , x2 , x3 )]2; entonces:

∇ g ( x1 , x2 , x3 ) ≡∇ g ( x )=¿

2 f 1 ( x )∂ f 1

∂ x2

( x )+2 f 2 ( x )∂ f 2

∂ x2

( x )+2 f 3 ( x )∂ f 3

∂ x2

( x ) ,

2 f 1 ( x )∂ f 1

∂ x3

( x )+2 f 2 ( x )∂ f 2

∂ x3

( x )+2 f 3 ( x )∂ f 3

∂ x3

( x ) ¿

¿2 J ( x )t F (x)

Con x(0)=(0,0,0)t, tenemos:

g ( x (0 ) )=111.975 yz0=‖∇ g ( x (0 ) )‖2=419.554.

Sea

z= 1z0

∇ g ( x (0 ) )=(−0.0214514 ,−0.0193062,0 .999583)t.

Paraα 1=0, tenemosg1=g (x ( 0)−α1 z)=g ( x (0 ) )=111.975. De manera arbitraria,

hacemos α 3=1, de modo que:

g3=g ( x( 0)−α3 z )=93.5649.

Como g3 ¿g1, aceptamos α 3y hacemos α 2=0.5. Así,

g2=g (x ( 0)−α2 z)=2.53557.

Ahora construimos el polinomio de interpolación de Newton con diferencias divididas hacia adelante:

P (α )=g1+h1 α+h3 α (α−α 2)

que interpola

g (x (0 )−α ∇ g(x (0 )))=g(x (0 )−αz)

Page 8: Metodo de La Maxima Pendiente

en α 1=0, α 2=0.5 y α 3=1 como sigue:

α 1=0, g1=111.975

α 2=0.5, g2=2.53557, h1=g2−g1

α 1−α 2

=−218.878 ,

α 3=1, g3=93.5649, h2=g3−g2

α 3−α2

=182.059,

h3=g2−g1

α3−α1

=400.937.

Por tanto:P (α )=111.975−218.878 α +400.937 α (α−0.5 ) .

Tenemos que P ' (α )=0 cuando α=α0=0.522959. Como

g0=g ( x (0)−α0 z )=2.32762 es menor que g1y g3, hacemos:

α=α0=0.522959 z= (0.0112182 , 0.0100964 ,−0.522741 )t

y

g ( x (1 ))=2.32762 .

La siguiente tabla contiene el resto de los resultados. Una solución real del sistema no lineal es (0.5, 0, -0.5235988) t.

IV. Aplicación 

k x1k x2

k x3k g(x1

k , x2k , x3

k¿

2 0.137860 -0.205453 -0.522059 1.274063 0.266959 0.00551102 -0.558494 1.068134 0.272734 -0.00811751 -0.522006 0.4683095 0.308689 -0.0204026 -0.533112 0.3810876 0.314308 -0.0147046 -0.520923 0.3188377 0.324267 -0.00852549 -0.528431 0.287024

Page 9: Metodo de La Maxima Pendiente

f(x), N, n, X, TOL

Este método puede utilizarse para hallar los máximos picos, los cuales pueden ser usados en varias ramas. En estadística es utilizado para hallar el rendimiento de diferentes situaciones como el de una población, hallando su máxima pendiente por la varianza que presente.

V. Algoritmo computacional

k=1

Wk ≤ N

g1 = g(x (k))

z= ∇ g(x (k))

Inicio

Page 10: Metodo de La Maxima Pendiente

z0 = ‖z‖2

Siz0 =0

g1

z = z/z0

α1= 0α3= 1

g3=g(x- α3z)

2222

3132 1

Wg3 ≥ g1

α3= α3/2

g3=g(x- α3z)

Siα3 < TOL/2

Page 11: Metodo de La Maxima Pendiente

Encontrar el polinomio cuadrático

g1

α2= α3/2

g2=g(x- α2z)

h1= ( g2-g1)/ α2

h2= (g3-g2)/ (α3- α2)

324

4

h3= ( h2-h1)/ α3

α0= 0.5 (α2- h1)/ h3

g0=g(x- α0z)

g=g(x- αz) = mín { g0, g3}

x = x-αz

32

Page 12: Metodo de La Maxima Pendiente

VI. Conclusiones y recomendaciones 

El método de la máxima pendiente es un método que converge sólo linealmente a la solución.

Este método casi siempre convergirá incluso con aproximaciones iníciales deficientes.

El método de la máxima pendiente es de convergencia lenta, se necesitará más iteraciones para aproximarnos cada vez más.

Se recomienda tener mucho cuidado en el cálculo de cada iteración, ya que un mal cálculo podría hacernos repetir todo el procedimiento.

El método de la máxima pendiente admite muchas variaciones, algunas de las cuales incluyen técnicas más complejas para determinar el valor de α .

Tenemos que tener conocimientos con el método de Interpolación de Newton, o algún otro que nosotros tengamos conocimiento para la construcción del polinomio cuadrático, que necesitamos en el método de la máxima pendiente.

VII. Anexo

g

k=k+1

Número máximo de iteraciones (N)

excedidas

Fin

Si|g-g1|>TOL

Page 13: Metodo de La Maxima Pendiente

Programa en Matlab

function [x,varargout]= maxPendiente(a,b,varargin) n=length(a); x=zeros(n,1);mmax=40; eps=1e-6; if nargin>2 mmax=varargin{1};end if nargin>3 eps=varargin{2};endif (nargin>4) x=varargin{3};end res=zeros(1,mmax);r=b-a*x; res(1)=dot(r,r); aux=norm(b);for m=1:mmax p=a*r; xi=res(m)/dot(r,p); x=x+xi*r; r=r-xi*p; res(m+1)=dot(r,r); % guardamos los residuos if (sqrt(res(m+1))<eps*aux); break end

Page 14: Metodo de La Maxima Pendiente

endres=res(1:m+1);if (m==mmax) && nargout<=3 disp('numero maximo de iteraciones sobrepasado')end if nargout>1 varargout{1}=m;endif nargout>2 varargout{2}=sqrt(res(:));endif (nargout>3) if m==mmax varargout{3}=0; else varargout{3}=1; endend return