Metodo de La Maxima Pendiente

October 5, 2017 | Author: _lok_ | Category: Gradient, Derivative, Function (Mathematics), Linearity, Equations
Share Embed Donate


Short Description

Download Metodo de La Maxima Pendiente...

Description

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: ( (

) )

(

)

(

tiene una solución en por:

)

(

)

justo cuando la función g definida

∑, (

)-

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

→ Determinar una dirección que, desde valor deg.

( )

, se origine una disminución del

→ Desplace una cantidad apropiada hacia esta dirección y llame al nuevo vector ( ) . → Repetir los tres pasos anteriores sustituyendo

( )

por

( )

.

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 ( ) , que se denota con ( ) y se define por medio de: ( )

(

( )

( )

( ))

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 ( ) es un vector unitario de lRn; es decir: ‖ ‖





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

( )

, (

)

( )

( )-

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 variables Figura 1

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 ( ), siempre y cuando ( ) . En consecuencia, la dirección de la máxima disminución de los valoresde g desde x es la dirección dada por ( ). Puesto que el objetivo es reducir ( ) a su valor mínimo de cero, dada la aproximación inicial ( ) , se toma: ( )

para alguna constante

.

( )

(

( )

)

……

(**)

El problema, entonces, se reduce a escoger un valor de

de manera que (

( )

)

sea significativamente menor que ( ( ) ). Si se quiere determinar una elección apropiada del valor de , considerense la función de una sola variable ( ) 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 que, se espera, estén cerca de donde ( )alcanza su valor mínimo. A continuación, se construye el polinomio de segundo grado ( )que interpola h en , y . - tal que ( ̂)sea el mínimo de ( ) en , Tomamos un valor ̂ en , y usando ( ̂)como aproximación del valor mínimo de ( ). Entonces ̂es el valor que se utiliza para determinar la nueva iteración en la búsqueda del valor mínimo de g: ( )

( )

̂

(

( )

)

Como ya se dispone de ( ( ) ), para reducir el esfuerzo computacional en lo posibleel primer punto que se escoge es . A continuación, se toma un punto tal que ( ) ( ). (Dado que no es el mínimo de h, dicho número

si existe). Finalmente se decide que

sea igual a .

- es el único El punto donde se alcanza el valor mínimo de ( ) en , puntocrítico de P o el punto extremo derecho del intervalo porque, por ( ) ( ) suposición, ( ) ( ).Dado que ( ) 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 ( )

( )

Dada una aproximación inicial x: Entrada: número de n variables; aproximación inicial tolerancia TOL; número máximo de iteraciones N.

(

) ,

(

Salida: solución aproximada

) o un mensaje de falla.

Paso 1. Tome k = 1. Paso 2. Mientras ( ), haga los pasos 3-15. ( ); (Nota: Paso 3. Tome ( ( ) )) ( ); (Nota: ( ( ) )) ‖ ‖ Paso 4. Si , entonces SALIDA (‘Gradiente cero’); ); SALIDA( (Procedimiento terminado, pude tener un mínimo.) PARAR. Paso 5. Tome z = z/z0; (convierta a z en un vector unidad.) ; ; ( ). Paso 6. Mientras (

), hago los pasos 7 y8. ⁄ ; (

Paso 7. Tome

)

Paso 8. Si

, entonces SALIDA (‘Mejora poco probable’); ); SALIDA( (Procedimiento terminado, pude tener un mínimo.) PARAR. ⁄

Paso 9. Tome ( Paso 10. Tome ( ) (

(

). )

;

)

.

); (

(Nota: La formula de las diferencias divididas hacia delante de Newton sirve para encontrar el cuadrático ( ) ( ) que interpola ( )en , y ).

Paso 11. Tome

( (

); (el punto crítico de P ocurre ).

)

Paso 12. Obtenga

de *

+ tal que

(

)

*

+

Paso 13.Tome x = x – z | Paso 14. Si | , entonces ); SALIDA ( (Procedimiento terminado exitosamente) PARAR Paso 15. Tome k = k + 1 Paso 16. SALIDA (‘Número máximo de iteraciones excedido ’). (Procedimiento terminado sin éxito). PARAR

III.

Ejemplo Sea el sistema no lineal de ecuaciones siguiente: (

)

(

(

)

(

(

)

)

)

Mediante el método de la Máxima Pendiente calcúlese la aproximación de la solución, comenzando en el punto inicial ( ) ( ). Solución: ( Sea entonces: (

)

)

, (

( )

)-

(

( ) ( )

( )

, (

( ) ( )

( ) ( ) ( )

)-

( ) ( )

( )

, (

( ) ( )

( )

)-

( ) ( )

( )

( ) ( )

( ))

;

( )

Con (

( )

(

) , tenemos:

)



y

( )

(

)‖

.

Sea (

( )

)

(

).

( ( ) ) , de modo que:

Para , tenemos arbitraria, hacemos

( Como

, aceptamos

( )

( )

(

)

. De manera

.

y hacemos (

)

. Así,

( )

)

.

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

(

)

que interpola ( en

,

( )

y

(

( )

))

(

( )

)

como sigue:

, ,

,

,

,

,

,

.

Por tanto: ( ) Tenemos ( ( )

que )

( ( )

cuando es menor que (

y

) Como

y

, hacemos: )

(

( )

)

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

k 2 3 4 5 6 7

IV.

g( 0.137860 0.266959 0.272734 0.308689 0.314308 0.324267

-0.205453 0.00551102 -0.00811751 -0.0204026 -0.0147046 -0.00852549

-0.522059 -0.558494 -0.522006 -0.533112 -0.520923 -0.528431

)

1.27406 1.06813 0.468309 0.381087 0.318837 0.287024

Aplicación 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

Inicio

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

k=1

W

g1 = g(x (k))

g(x (k))

z=

z0 = ‖ ‖

Si z0 =0

g1

z = z/z0

α 1= 0 α 3= 1 g3=g(x- α3z) 2 2 2 2

1

3

2

3

1

W g3 ≥ g1

α3= α3/2

g3=g(x- α3z)

Si α3 < TOL/2

g1

α2= α3/2

g2=g(x- α2z)

h1= ( g2-g1)/ α2

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

3 4

2

4

3

h3= ( h2-h1)/ α3

Encontrar el polinomio cuadrático

α0= 0.5 (α2- h1)/ h3 g0=g(x- α0z) g=g(x- αz) = mín { g0, g3} x = x-αz

Si |g-g1|>TOL

g

k=k+1

Número máximo de iteraciones (N) excedidas

Fin

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

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}; end if (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))2 varargout{2}=sqrt(res(:)); end if (nargout>3) if m==mmax varargout{3}=0; else varargout{3}=1; end end return

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF