Sunteți pe pagina 1din 20

UNIVERSIDAD NACIONAL

SANTIAGO ANTUNEZ
DE MAYOLO

FACULTAD DE CIENCIAS
ESCUELA ACADEMICO PROFESIONAL DE MATEMATICA

RESUMEN DE LA EXPOSICION
M
etodos b
asicos de descenso
CURSO: Programaci
on no lineal
ESTUDIANTES:

1. BORJA APENA,
Marcelino

2. LOPEZ
MAGUINA,
David
PROFESOR: PACHECO CASTILLO, Alexander

HUARAZ - PERU
2015

Indice
1. B
usqueda de Fibonacci

2. B
usqueda lineal mediante ajuste de curvas

2.1. Metodo de newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1.1. Algoritmo del metodo de newton . . . . . . . . . . . . . . . . . . .

2.2. Ajuste cuadratico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11


2.3. Ajuste c
ubico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3. M
etodo de descenso de mayor pendiente

14

3.1. Caso general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14


3.2. Caso cuadratico

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

M
etodos b
asicos de descenso
1.

B
usqueda de Fibonacci
Permite resolver el problema de b
usqueda lineal, este metodo determina el mnimo va-

lor de una funcion f sobre un intervalo cerrado [a0 , b0 ].Esta funcion puede estar definida
en un dominio mas amplio, pero el metodo requiere que dicho intervalo de b
usqueda sea
definido.
Se asume que f es unimodal, el mnimo es determinado(al menos aproximadamente) mediante la evaluacion en un cierto n
umero de puntos. Se pretende definir una estrategia de
b
usqueda que seleccione la observacion siguiente basada en los valores funcionales de las
observaciones anteriores.
Esto se define seg
un el siguiente problema:

Encontrar como seleccionar sucesivamente n observaciones, sin contar con un conocimiento explcito de la funcion, de forma tal que podamos encontrar la mas peque
na region
de incertidumbre posible en donde se encuentre el dominio,esta region de incertidumbre
es determinada en cualquier caso por las observaciones(sus valores funcionales) y la suposicion de que f es unimodal.

La b
usqueda de Fibonacci se basa en la secuencia de los n
umeros de Fibonacci que se
definen por las ecuaciones F0 = F1 = 1; Fn = Fn1 + Fn2 , n = 2, 3, . . ..

Supongamos que se nos da una funcion f (x) que es unimodal en el intervalo [a0 , b0 ].
de los puntos interiores c0 y d0 se utilizo el siguiente subintervalo y solo habra una nueva
evaluacion de la funcion.
Si f (c0 ) 6 f (d0 ), entonces el mnimo debe ocurrir en el subintervalo [a0 , d0 ], y reemplazamos a1 = a0 y b1 = b0 y continuar la b
usqueda en el nuevo subintervalo [a1 , b1 ] = [a0 , b0 ].
Si f (c0 ) > f (d0 ) entonces el mnimo debe ocurrir en el subintervalo [c0 , b0 ] y reemplazamos
a1 = c0 y b1 = b0 y continuar la b
usqueda en el nuevo subintervalo [a1 , b1 ] = [c0 , b0 ] .

Es necesario el uso de n iteraciones, donde n es el n


umero mas peque
no tal que
b0 a 0
Fn >
. Los puntos interiores ck y dk del subintervalo [ak , bk ] se encuentran, seg
un

sea necesario, utilizando las siguientes formulas:


(
)
Fn1k
ck = a k + 1
(bk ak )
(1)
Fnk
)
(
Fn1k
(bk ak )
(2)
dk = ak +
Fnk
Ejemplo 1.1. Encontrar el mnimo de la funcion unimodal, f (x) = x2 sin(x) en el
intervalo [0, 1] usando el metodo de Fibonacci. Utilice la tolerancia = 0,0001.
Soluci
on
Fn >

b0 a 0
10
=
= 10000 = n = 21 = F21 = 10946, F20 = 6765

0,0001

Primera iteracion:
[a0 , b0 ] = [0, 1]
c0 = a0 + (1

F20
)(b0 a0 ) = 0 + (1 0,618034)(1) = 0,381966
F21

F20
)(b0 a0 ) = 0 + (0,618034)(1) = 0,618034
F21
f (c0 ) = f (0,381966) = 0,226847

d0 = a0 + (

f (d0 ) = f (0,618034) = 0,197468 = f (c0 ) 6 f (d0 ) = minf (x) esta en [a0 , d0 ].

Figura 1: Primera interaccion.

Segunda interacion:
[a1 , b1 ] = [a0 , d0 ] = [0; 0,618034]
3

c1 = a1 + (1

F19
)(b1 a1 ) = 0 + (1 0,618034)(0,618034) = 0,236068
F20

F19
)(b1 a1 ) = 0 + (0,618034)(0,618034) = 0,381966
F20
f (c1 ) = f (0,236068) = 0,178153

d1 = a1 + (

f (d1 ) = f (0,381966) = 0,226847 = f (c1 ) > f (d1 ) = minf (x) esta en [c1 , b1 ].

Figura 2: Segunda interaccion.

Tercera interacion:
[a2 , b2 ] = [c1 , b1 ] = [0,236068; 0,618034]
F18
)(b2 a2 ) = 0,236068 + (1 0,618034)(0,381966) = 0,381966
c2 = a2 + (1
F19
F18
d2 = a2 + (
)(b2 a2 ) = 0,236068 + (0,618034)(0,381966) = 0,472136
F19
f (c2 ) = f (0,381966) = 0,2268475
f (d2 ) = f (0,472136) = 0,2318772 = f (c2 ) > f (d2 ) = minf (x) esta en [c2 , b2 ].

Figura 3: Tercera interaccion.

Cuarta interacion:
4

[a3 , b3 ] = [c2 , b2 ] = [0,381966; 0,618034]


F17
c3 = a3 + (1
)(b3 a3 ) = 0,381966 + (1 0,618034)(0,618034 0,381966) =
F18
0,4721359
F17
d3 = a3 + (
)(b3 a3 ) = 0,381966 + (0,618034)(0,618034 0,381966) = 0,5278641
F18
f (c3 ) = f (0,4721359) = 0,2318772
f (d3 ) = f (0,5278641) = 0,2250488= f (d3 ) > f (c3 ) = minf (x) esta en [a3 , d3 ].

Figura 4: Cuarta interaccion.

..
.
Decimo noveno interaccion:
Tenemos la aproximacion:
c = 0,45021012
f (c) = f (0,45021012) = 0,232465574

2.

B
usqueda lineal mediante ajuste de curvas

2.1.

M
etodo de newton

Metodo para funciones dos veces diferenciables, de una sola variable en donde lo que
se quiere es encontrar:

minf (x)
con f (x) y f (x) conocidas.

(3)

Sea xk un punto factible, se puede aproximar f (x) al rededor de xk , a travez del


polinomio de taylor de segundo grado:
1
q(x) = f (xk ) + f (x)(x xk ) + f (xk )(x xk )2
2

(4)

Figura 5: Aproximacion de segundo orden.

La funcion q(x) construida, es una buena aproximacion de segundo grado para f (x)
ya que:

q(xk ) = f (xk )
q (xk ) = f (xk )
q (xk ) = f (xk )
Si:
f (xk ) > 0 q(x) es convexa.
f (xk ) < 0 q(x) es concava.
Resolvemos minq(x), en vez de minf (x), entonces se puede calcular y estimar xk+1 del
punto mnimo de f (x) hallando el punto en el que se anula la derivada de q(x).[condicion
del primer orden]
De (4), al derivar se tiene:
q (x) = f (xk ) + f (xk )(x xk )

Ahora como en xk+1 se anula q(x).


q (xk+1 ) = f (xk ) + f (xk )(xk+1 xk ) = 0

Del anterior al despejar xk+1 obtenemos el metodo iterativo de newton:

xk+1 = xk
2.1.1.

f (xk )
f (xk )

(5)

Algoritmo del m
etodo de newton

Paso inicial: Seleccionar la tolerancia 0, encontrar por inspeccion una solucion


de prueba inicial, x0 , para k = 0
Paso iterativo: Evaluar f (xk ) y f (xk ), luego minimizar q(x) y obtener una nueva
solucion xk+1 ,usando:

xk+1 = xk

f (xk )
f (xk )

Criterio de parada: si |xk+1 xk | , parar, y el mnimo en este caso resultaria


x xk+1 . Sino, avanzar k = k + 1, ir al paso iterativo.
Ejemplo 2.1. Encontrar el minf (x) = 2x3 21x2 + 60x 7
Soluci
on
Hallamos las derivadas:
f (x) = 6x2 42x + 60
f (x) = 12x 42
Aqui aprovechamos hallando los puntos de inflexion de la funcion f (x) asi:
f (x) = 12x 42 = 0
7

x=

42
= 3,5
12

Esto significa que:


Si x > 3,5 f (x) > 0, luego diremos que f (x) es escrictamente convexa esto nos
garantiza para haya un mnimo.
Si x < 3,5 f (x) < 0, luego diremos que f (x) es escrictamente concava esto nos
garantiza para haya un maximo.
Observaci
on 2.1. De esta manera nosotros podemos elegir facilmente para una funcion
polinomica un valor inicial x0 = 4, es decir estamos escogiendo un punto cercano a x >
3,5. por conveniencia ya que si elegimos un valor tan grande para x0 , el metodo de newton
estaria convergiendo en varias iteracciones y eso no nos conviene.
Ahora usamos el algoritmo del metodo de newton:

Paso inicial: Escogemos = 0,0000000001, x0 = 4.


Paso iterativo:
Hallando las derivadas en el punto xk asi:
f (xk ) = 6x2k 42xk + 60
f (xk ) = 12xk 42
Luego reemplazando f (xk ) y f (xk ) en (5) obtenemos la formula de newton para
iterar de la siguiente forma:
xk+1 = xk

6x2k 42xk +60


12xk 42

Ahora:
para k = 0 x1 = x0
para k = 1 x2 = x1
para k = 2 x3 = x2
..
.

6x20 42x0 +60


12x0 42
6x21 42x1 +60
12x1 42
6x22 42x2 +60
12x2 42

Remplazando x0 = 4 se comienza la interacion como se muestra en la siguiente


tabla:

Figura 6: Tabla de valores.

Criterio de parada: Si calculamos |xk+1 xk | = 6,9849193096160910 < , parar


en este caso el minimo es x = 5, en este caso efectivamente se ha encontrado
exactamete el mnimo para la funcion.
Observaci
on 2.2. Una de las formas mas sencillas de ver el metodo de newton es considerarlo como una tecnica de resoluci
on iterativa de ecuaciones de la forma:

g(x) = 0
donde al aplicarla a la minimizacion, se hace g(x) = f (x), luego al reemplazar en (5)
adapta la forma
xk+1 = xk

g(xk )
g (xk )

(6)

A continuacion vemos un preliminar del Teorema de Taylor para poder demostrar la


siguiente proposicion que, nos dice que bajo ciertas condiciones, una funcion puede ser
expresarse como un polinomio de Taylor mas un cierto error, es decir

g(x) = Pn (x) + En
Teorema 2.1 (Teorema de taylor). Sea g continua en [a, b] y con derivadas hasta de
orden n continuas tambien en este intervalo cerrado; supongase que g (n+1) (x) existe en
< a, b >, entonces para x y xk < a, b > se tiene:
g(x) = g(xk ) + g (xk )(x xk ) +
donde En =

g n+1 ()(xxk )n+1


(n+1)!

g (xk )(x xk )2
g n (xk )(x xk )n
+ ... +
+ En
2!
n!

y es un punto que se encuentra entre x y xk .


9

(7)

Observaci
on 2.3. Al construir el polinomio de taylor de primer grado al rededor de xk
es de segundo grado,
1
g(x) = g(xk ) + g (x)(x xk ) + g ()(x xk )2 , < x, xk >
2
despejando el termino error,
1
g ()(x xk )2 = g(x) g(xk ) g (x)(x + xk )
2
Si x = x obtenemos:
1
g ()(x xk )2 = g(x ) g(xk ) g (x)(x xk )
2

(8)

Proposici
on 2.1. sea g(x) una funcion con segunda derivada continua, y g(x ) que setisface g(x ) = 0, g (x ) = 0. Entonces, si x0 est
a suficientemente cerca de x , la sucesion
{xk }
etodo de newton (6), converge a x con un orden de converx=0 , generada por el m
gencia de al menos dos.
Demostracion. Para los puntos en una region proxima a x
k1 : |g ()| < k1
k2 : |g ()| > k2
Entonces como, g(x ) = 0, se puede escribir

g(xk ) g(x )
g (xk )
g (xk )(xk x ) g(xk ) + g( x )
=
g (xk )
[
]
g(x ) g(xk ) g (xk )(x xk )
=
g (xk )

xk+1 x = xk x

(9)

El termino entre corchetes, por el teorema de taylor, es de cero a primer orden. de


hecho, utilizando el termino residuo en una expancion en serie al rededor de xk , se obtiene:
Ahora reemplazando la expresion (8) en (9) tenemos:

10

[1

]
g ()(x xk )2
=
g (xk )
1 g ()(x xk )2
=
2
g (xk )



1 g ()
(x xk )2
=

2 g (xk )
2

Para algun entre x y xk . As, en la region proxima a x ,


k1
|(x xk )|2
2k2
k1
=
|(x xk )| |(x xk )|
2k2

|xk+1 x |

se observa que si,


k1
|(x xk )| < 1
2k2
entonces,
|xk+1 x | < 1 |(x xk )|
|xk+1 x | < |x xk | , k N
|x xk | 0
xk x

y asi se concluye que, comenzando suficientemente cerca de la solucion, el metodo convergera a x con un orden de convegencia de al menos dos.

2.2.

Ajuste cuadr
atico

Si comenzamos con tres puntos, por ejemplo x1 , x2 , x3 en orden creciente, y no necesariamente igualmente espaciados, pero contenidos dentro de la zona de b
usqueda < a, b >,
podemos aproximarlos a un polinomio de grado 2, f (x) = a + bx + cx2 de tal manera que
dicho polinomio pasa exactamente por esos tres puntos y debe presentar un mnimo en:
11

x =

b
2c

(10)

Observaci
on 2.4. La ecuacion (10) se obtiene completando el cuadrado a,f (x) = a +
bx + cx2 asi:
f (x) = a + bx + cx2
= cx2 + bx + a
[
]
b
a
2
= c x + x+
c
c
[(
]
)2
b
4ac b2 c
= c x+

2c
4c2
(
)2
b
4ac b2 c
= c x
+
2c
4c

c
De este anterior se consigue el vertice de la par
abola ( b
, 4acb
), la cual es la primera
2c
4c
2

componente el optimo(mnimo) x =

b
2c

para dicha curva la par


abola.

Si suponemos que f (x) se eval


ua en los tres puntos, podramos calcular los valores de
a, b, c resolviendo el sistema de tres ecuaciones lineales:

f (x1 ) = a + bx1 + cx21

f (x2 ) = a + bx2 + cx22

f (x ) = a + bx + cx2
3
3
3

(11)

Al resolver el sistema (11), encontramos los valores de a, b y c. Luego al reemplazar en


(10) lo que nos lleva a obtener:
]
[
1 (x22 x23 )f1 + (x23 x21 )f2 + (x21 x22 )f3
x =
2 (x2 x3 )f1 + (x2 x3 )f2 + (x2 x3 )f3

(12)

Donde:
f (x1 ) = f1 , f (x2 ) = f2 y f (x3 ) = f3

Para ilustrar la primera etapa del procedimiento de b


usqueda examinaremos en la
Figura Se
nalar que solamente una nueva evaluaci
n de la funcion objetivo se lleva a cabo
en cada etapa de b
usqueda. Este metodo utiliza evaluaciones de la funcion, y solo un
nuevo valor de funcion debe ser calculado en cada iteracion.
12

Figura 7: Ajuste cuadratico

Ejemplo 2.2. Minimizar usando el metodo de aproximaci


on cuadratica la siguiente funci
on: f (x) = 2x2 +

16
x

Soluci
on
Tomando los puntos iniciales x1 = 1, x2 = 2,5 y x3 = 5, el metodo converge en cuatro
iteraciones, el valor optimo obtenido es x = 1,60.

Figura 8: Valores por aproximacion cuadratico

2.3.

Ajuste c
ubico

Este metodo esta basado en la aproximacion polinomial mediante un polinomio de


tercer grado de la funcion que se quiere minimizar. El esquema es similar al metodo
cuadratico. Se necesitan cuatro puntos iniciales, o cuatro valores de f (x), o valores de
f (x) y sus derivadas cada dos puntos.

13

Este metodo es de convergencia rapida, pero puede presentar errores en funciones no


unimodales.
Dados xk1 y xk junto a f (xk1 ), f (xk1 ), f (xk ), y f (xk ) es posible ajustar una
ecuacion c
ubica en los puntos. El punto xk+1 (mnimo) puede ser determinado como el
punto mnimo relativo de esta ecuacion c
ubica.
[
]
f (xk ) + u2 u1
xk+1 = xk (xk xk1 )
f (xk ) f (xk1 ) + 2u2

(13)

Donde:
)f (xk )
u1 = f (xk1 ) + f (xk ) 3 f (xxk1
k1 xk

u2 = u21 f (xk1 )f (xk )

La aplicacion de este metodo requiere que xk 1 < xk y f (xk ) > f (xk1 ).

3.

M
etodo de descenso de mayor pendiente
Tambien se conoce como metodo del gradiente. Este metodo se pretende encontrar el

mnimo de la funcion f : Rn R continua en sus primeras derivadas parciales .

3.1.

Caso general

La direccion de b
usqueda utilizada en este metodo es el negativo de la pendiente en
cualquier punto particular xk Rn .
Sk = f (xk )

(14)

Desde esta direccion ofrece el descenso maximo en valores de la funcion, se le llama metodo
de maxima pendiente. En cada iteracion, se calcula la derivada en el punto actual y una
b
usqueda unidireccional se realiza en la negativa a esta direccion derivado para encontrar
el punto mnimo a lo largo de esa direccion. El punto mnimo se convierte en el punto
actual y la b
usqueda contin
ua desde este punto. El procedimiento contin
ua hasta que
se encuentre un punto que tiene una peque
na pendiente suficiente vectorial. Los pasos
seguidos en el presente metodo se menciona a continuacion secuencialmente:
1. Comience con un punto inicial arbitraria xk Rn .
14

2. Encuentre la direccion de b
usqueda Sk comoSk = f (xk )
3. Determinar la duracion optima paso k en la direccion Sk y establecer xk+1 =
xk + k Sk = xk k f (xk )
4. Pruebe el nuevo punto xk+1 , de optimalidad. Si xk+1 es el optimo, detener el proceso,
alternativamente ir al paso 5.
5. Ajuste el nuevo n
umero de la iteracion k = k + 1 y ir al paso 2.

0
Ejemplo 3.1. Minimize f (x) = 2x21 + x22 + 2x1 x2 + x1 x2 a partir del punto x1 =
0

Soluci
on
Primera interacon:
El gradiente
de f viene dado por

f
1
+
4x
+
2x
1
2
1

f = x
f =
1 + 2x1 + 2x2
x2
1
f (x1 ) =
1
Por lo tanto,

1
S1 = f (x1 ) =
1
A continuacion , tenemos que encontrar la longitud
optima
paso 1 para encontrar
1
) = 21 21 con respecto
x2 . Para ello debemos minimizar f (x1 +1 S1 ) = f (
1
df
= 0 en 1 = 1 obtendramos
a 1 . Desde
d1

1
1
0
x2 = x1 + 1 S1 = + 1 =
1
1
0

0
1
Desde f (x2 ) = = , el x2 no es optimo y, por tanto se requiere mas
0
1
iteraciones.

15

Segunda interaccion:
1
S2 = f (x2 ) =
1
Para reducir al mnimo,
debemos
primero evaluar,
1 + 2
) = 522 22 1. A continuacion establecemos
f (x2 + 2 S2 ) = f (
1 + 2
df
1
= 0 y obtenemos 2 = , y entonces
d2
5

1
0,8
1 1

x3 = x2 + 2 S2 = + =
5
1
1
1,2
puesto quelos componentes
del gradiente en x3 ,

0,2
0
= se procede a la siguiente iteracion.
f (x3 ) =
0,2
0
Tercera interaccion:

0,2

S3 = f (x3 ) =
0,2
desde,

0,8 3
) = 0,0423 0,083 1,2 establecemos , df = 0
f (x3 + 3 S3 ) = f (
d3
1,2 + 0,23
que conduce a 3 =
1.Porlo tanto


0,8
0,2
1
+ 1
=
x4 = x3 + 3 S3 =
1,2
0,2
1,4
el gradiente
en x4esta dada por

0,2

f (x4 ) =
0,2

0
Desde f (x4 ) = , x4 no es el optimo y, por lo tanto debemos pasar a la
0
siguiente iteracion.
..
.


1
Este proceso se contin
ua hasta que el punto optimo en, x = es encontrado.
1,5


0
1
es decir, en x = el f (x ) = . Por lo tanto en x la funcion f alcanza su
0
1,5
16

mnimo.

3.2.

Caso cuadr
atico

Esencialmente, todas las caractersticas importantes de convergencia local del metodo


de descenso de mayor pendiente se revelan investigando el metodo al aplicarlo a problemas
cuadraticos. Tengase la funcion cuadratica:
1
f (x) = xT Ax xT b
2

(15)

donde A es una matriz de nxn simetrica definida positiva, x Rn y b es un vector


tambien de Rn . Como A es definida positiva, todos sus valores propios son positivos.
Adems como A es definida positiva, resulta que f es estrictamente convexa.
El u
nico punto mnimo de f se puede hallar directamente, resolviendo el sistema lineal
Ax = b.
Ejemplo 3.2. Minimize f (x) = 2x21 + x22 + 2x1 x2 + x1 x2 .
Soluci
on

Figura 9: Grafica del paraboloide.



(
)
(
) 4 2
1
x
1
1 x1 x2
f (x) = 2x21 + x22 + 2x1 x2 + x1 x2 =
x1 x2
2
1
x2
2 2



4 2
1
x1

= x = ; b = ;A =
2 2
1
x2
17

se observa que 1 = 4 > 0 y 2 = 4 > 0 entoces la matriz A es definida positiva , entonces


la funcion f es estrictamente convexa. Para encontrar el mnimo de f bastara resolver el
sistema

lineal
Ax =
b.


x
1
4x + 2x2
1
4 2
1 = = 1
=

x2
1
2x1 + 2x2
1
2 2

x1
1
resolviendo se obtiene = en la cual la funcion f alcanza su mnimo.
x2
1, 5

18

Referencias
[1] Luenberger, D., (1989) Programaci
on lineal y no lineal, Mexico, Ed. Addison-Wesley
Iberoamericana.
[2] nptel.ac.in/courses/112101/dowloads/module-5-lecture-final
[3] http://agamenon.tsc.uah.es/Asignaturas/master/optimizacion/Programacion-nolineal.pdf
[4] http://intrawww.ing.puc.cl/siding/public/ingcursos/cursos-pub/descarga.phtml?idcurso-ic=375yid-archivo=12407

19

S-ar putea să vă placă și