0% encontró este documento útil (0 votos)
17 vistas60 páginas

Optimización Multidimensional 2023

Este documento presenta los métodos de optimización multidimensional no restringida para encontrar el mínimo de una función de varias variables. Introduce el método de una variable a la vez, que itera buscando el mínimo a lo largo de cada eje de manera secuencial, y provee un ejemplo para ilustrarlo. También explica la búsqueda de línea para encontrar el mínimo sobre una dirección determinada.

Cargado por

Juegaso Games
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
17 vistas60 páginas

Optimización Multidimensional 2023

Este documento presenta los métodos de optimización multidimensional no restringida para encontrar el mínimo de una función de varias variables. Introduce el método de una variable a la vez, que itera buscando el mínimo a lo largo de cada eje de manera secuencial, y provee un ejemplo para ilustrarlo. También explica la búsqueda de línea para encontrar el mínimo sobre una dirección determinada.

Cargado por

Juegaso Games
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Matemática Superior Aplicada

Optimización Multidimensional
no restringida
2023
Prof.: Dr. Juan Ignacio Manassaldi
JTP: Ing. Amalia Rueda
Repaso
Repaso
Repaso
Repaso
Aproximación de primer orden:
f ( x , x 0 ) = f ( x 0 ) + ( x − x 0 ) f ( x 0 )
T

Aproximación de segundo orden:


1
f ( x, x 0 ) = f ( x 0 ) + ( x − x 0 ) f ( x 0 ) + ( x − x 0 )  2 f ( x 0 )( x − x 0 )
T T

2
Introducción
Los métodos que se han ideado se pueden clasificar en tres amplias
categorías según el tipo de información que debe proporcionar el
usuario:
• Métodos de búsqueda directa, que utilizan solo valores de
función.
Método de una variable a la vez
• Métodos de gradiente (primer orden), que requieren
estimaciones de la primera derivada de ƒ(x).
Descenso mas pronunciado
• Métodos de segundo orden, que requieren estimaciones de la
primera y segunda derivada de ƒ(x).
Método de Newton
Introducción - Búsqueda de línea
• La búsqueda de línea nos permite encontrar el valor mínimo (o
máximo) que toma una función sobre una dirección determinada
de búsqueda.
• Para realizar la búsqueda de línea sobre ƒ(x), necesitamos un valor
perteneciente al dominio de la función x0 y una dirección de
búsqueda d.
• Partiendo del punto x0 y utilizando la dirección en el espacio d
podemos encontrar el valor mínimo que toma la función mediante
una optimización unidimensional.

x=x
0
+d
Ecuación de todos los puntos sobre la dirección d desde x0
Búsqueda de línea

Ecuación de todos los puntos sobre la dirección d desde x0:

x=x
0
+d
Para encontrar el valor mínimo sobre esta dirección se debe resolver
el siguiente problema:

Min. f x ( 0
+d )
¡Es un problema de optimización unidimensional!
Solo debo encontrar el  que minimiza f
Búsqueda de línea - Ejemplo

f ( x ) = 8 x1 + 4 x1 x2 + 5 x2
2 2
Búsqueda de línea - Ejemplo
 −4  1 
f ( x ) = 8 x1 + 4 x1 x2 + 5 x2
2 2 x =  d = 
0

 −4  0 
Búsqueda de línea - Ejemplo

→x=x
 −4  1  0
x =
0
 −4  d= 0  +d
   

 −4  1   −4+ 
x=   +   →x=  
 −4  0  −4 

Min. f x ( 0
+d ) f ( x ) = 8 x12 + 4 x1 x2 + 5 x2 2

Min 8 ( −4 +  ) + 4 ( −4 +  )( −4 ) + 5 ( −4 )
2 2
Búsqueda de línea - Ejemplo

Min 8 ( −4 +  ) + 4 ( −4 +  )( −4 ) + 5 ( −4 )
2 2

(
f x
0
+d )
 óptimo = 5


Búsqueda de línea - Propuesta

 −4   cos ( 4 ) 
x =  d =
0
 Min. f ( x ) = 8 x1 + 4 x1 x2 + 5 x2
2 2

 −4   sen ( ) 
 4
Método directo: “Una variable a la vez”

• En el método de una variable a la vez, buscamos el mínimo a lo


largo de las direcciones paralelas a los ejes.
• Este proceso se realiza de manera iterativa hasta que no sea
posible una mejora en la FO.
• El método de optimización unidimensional elegido influye en el
desempeño del método.
• Este método puede no converger y en algunos casos su
convergencia resultar muy lenta.
• Estos problemas se pueden evitar cambiando las direcciones de
búsqueda de una manera favorable en lugar de mantenerlas
siempre paralelas a los ejes de coordenadas.
Una variable a la vez - Algoritmo

( 0)
x D  n
; d 1, d 2 , d n; k = 1

x( ) = x(
k k −1)

i =1 a n (
 * = Min. f x ( ) +  d i
k
)
x( ) = x( ) +  * d i
k k

x( ) − x(
k −1)
 tol
k

si
no
x* = x (
k)

k = k +1
Una variable a la vez - Ejemplo
 −4 
Min. f ( x ) = 8 x1 + 4 x1 x2 + 5 x2
2 2
x ( 0)
= 
 −4 
Una variable a la vez - Ejemplo

Min. f ( x ) = 8 x1 + 4 x1 x2 + 5 x2 2 2

k =1 i =1
x
( 0)
=
 −4 
 −4 
  (
 = Min. f x ( ) +  d 1 →  = 5
1
)
( ) ( )
d1 =
1 
 
x 1 = x 1 +  d 1 → x(1) = −4 + 5 1  =  1 
−4  0   −4 
0 

d2 = 
0 

i=2

( )
1 
 = Min. f x ( ) +  d 2 →  = 3.6
1

( ) ( )  −4 
x1 = x0 =  ( ) ( )
x 1 = x 1 +  d 2 → x(1) =  1  + 3.6 0 =  1 
 −4  −4 −0.4
  1    

( 0)  −4  (1)  1   ( )
 f x ( 0) = 272
x =  ;
 −4 
x = 
 − 0.4


→
( )
(1)
 f x = 7.2

¿? ¡Seguimos!
Una variable a la vez - Ejemplo

k =2 i =1
( )
x1 =
 1 

 −0.4 
 = Min. f x ( ( 2)
+  d1 ) →  = −0.9
x 2 = x 2 +  d 1 → x( 2) =  1  1   0.1 
( ) ( )
1   − 0.9   = 
d1 =    − 0.4    
0 −0.4


0 

d2 =
0 
 
i=2

( ) →  = 0.36
1 
 = Min. f x (
2)
+d2
( 2) (1)  1 
x =x =  −0.4  x
( 2)
=x
( 2) ( )
+  d 2→ x = 
2  0.1 
 + 0.36
0   0.1 
 = 
   − 0.4  1   −0.04 

 1   0.1   ( )
 f x (1) = 7.2
x (1)
=  ;
 −0.4 
x ( 2)
= 
 −0.04


→ 
f x

( 2)
( )
= 0.072
¿? ¡Seguimos!
Una variable a la vez - Ejemplo

k =3 i =1
x2 =
( )  0.1 

 −0.04 
 = Min. f x ( ( 3)
+  d1 ) →  = −0.09
( ) ( )
d1 =
1 
 
x 3 = x 3 +  d 1 → x(3) =  0.1 
 − 0.09
1   0.01 
 = 
 − 0.04  0   −0.04 
0 

d2 =
0 
 
i=2

( ) →  = 0.036
1 
 = Min. f x (
3)
+d2
( 3) ( 2)  0.1 
x =x =  −0.04  ( ) ( )
x 3 = x 3 +  d 2 → x(3) =  0.01  + 0.036 0 =  0.01 
  
 −0.04  1   −0.004 

( 2)
=
 0.1  ( 3)
=
 0.01 


f x ( 2)
( )
= 0.072 ¿?
x  ; x   →
 −0.04   −0.004  ( 3)
( )
 f x = 0.0072
¡Sigan!

Una variable a la vez - Ejemplo

( )
x2 ( )
x1

( )
x0
Métodos basados en el gradiente
• Los métodos directo requieren solo valores de la función objetivo
para avanzar hacia la solución.
• Los métodos directos son importantes, porque muy a menudo, en
un problema práctico de ingeniería, esta es la única información
confiable disponible.
• Por otro lado, incluso los mejores métodos directos pueden
requerir un número excesivo de evaluaciones de la función para
localizar la solución.
• El ítem anterior, combinado con el deseo natural de buscar
puntos críticos, motiva a considerar métodos que emplean
información del gradiente.
• Se supone en todo momento que f ( x ) , f ( x ) y  2 f ( x ) existen y son
continuas.
Métodos basados en el gradiente
• Todos los métodos que se presentaremos emplean un
procedimiento de iteración similar, el nuevo punto se obtiene a
partir de una dirección de búsqueda:

+  k s ( x( k ) )
( k +1) (k )
x =x
(k )
x : Estimación actual de x *
 k : Tamaño del salto
s ( x ( k ) ) : Dirección de busqueda en el espacio n

• En general se busca entonces encontrar el tamaño del salto en la


dirección de s que minimiza el valor de la función objetivo
(búsqueda de línea).
Método del descenso mas pronunciado
• Supongamos que estamos en el punto x(k) y deseamos
determinar la dirección de “el mayor descenso local".
• A partir de la serie de Taylor, formamos una aproximación lineal a
ƒ(x) a partir x(k) eliminando los términos de orden 2 y superiores:

(
f x, x
(k )
) = f x ( )
(k )
+(x − x )
(k ) T
f x k( )( )

• Evaluando la aproximación de la función objetivo en el siguiente


punto (k+1) del proceso iterativo se llega a:

(
f x
( k +1)
,x
(k )
) = f (x )+(x
(k ) ( k +1)
−x )
(k ) T
f x ( )
(k )

• Suponemos que la aproximación lineal representa a la función,


por lo que:
(
f x
( k +1)
) = f x ( )
(k )
+(x ( k +1)
−x )
(k ) T
f x k ( )( )
Método del descenso mas pronunciado
• Por lo tanto, el cambio en la función objetivo corresponde a:

f x ( ( k +1)
) ( )
−f x
(k )
= (x ( k +1)
−x )
(k ) T
( )
f x k
( )

• Siguiendo la estrategia de resolución propuesta:

+ s(x )  (x ) = s(x )
( k +1) (k ) (k ) T (k ) T
x =x k (k ) ( k +1)
−x
k

• Reemplazando en la expresión anterior:

( )− f (x ) = s(x ) ( ) ( ) cos 
s ( x ( k ) ) f x k
( )
( k +1) (k ) (k ) T (k )
f x k
f x
• Analizando, proponemos la siguiente dirección:

s ( x ( k ) ) = −f x k ( ) ( )
Método del descenso mas pronunciado
• Luego, reemplazando la dirección propuesta:

( ) − f ( x ) = − f ( x ) f ( x )
f x
( k +1) (k ) k (k ) T (k )

f (x ) − f ( x ) = − f ( x )
2
( k +1) (k ) k (k )

• El método mas simple basado en el gradiente consiste en tomar la


dirección opuesta del gradiente y fijar  como un parámetro fijo
positivo:

− f ( x ( k ) )
( k +1) (k )
x =x
• Esto tiene dos desventajas: la necesidad de hacer una elección
adecuada para  y la lentitud inherente cerca del mínimo debido a
que en esta zona el gradiente tiende a cero.
Método del descenso mas pronunciado

• El Método del descenso mas pronunciado propone realizar una


optimización unidimensional para la elección de  en cada
iteración:

−  f ( x ( k ) )
( k +1) (k ) (k )
x =x
• Por lo tanto, en cada iteración se debe resolver el siguiente
problema de optimización unidimensional:

 * = min f ( x ( k ) − f ( x ( k ) ) )  x k +1 = x k −  *f ( x ( k ) )


( ) ( )

• Este método es más confiable que el método de gradiente simple,


pero la convergencia sigue siendo lenta para la mayoría de los
problemas prácticos.
Método simple (l=cte)

Ejemplo: Min. f ( x ) = x1 + x2 − 11 ( ) + ( x1 + x2 − 7)
2 2 2 2

 2 ( x12 + x2 − 11) ( 2 x1 ) + 2 ( x1 + x2 2 − 7 ) 
− f ( x ( k ) )
( k +1) (k )
x =x f ( x ) =  
 ( 1 + − ) ( 1 2 ) 2 
+ + − ( )
2 2
2 x x2 11 2 x x 7 2 x

 =1 
 x
(1)
=
 44 
x2 =
( )  −343150 
( ) 2   


x0 =    20   38830 
2 

 = 10−1 
 (1)  6.2  ( 2)  −74.003
( 0) 2  x =   x =  
x =    3.8   − 23.181
2 

 = 10−2 
 (1)  2.42  ( 2)  2.703
( 0) 2  x =   x =  
x =    2.18   2.224 
2 
Min. f ( x ) = ( x1 + x2 − 11) + ( x1 + x2 − 7 )
2 2 2 2

 = 10−2
( 0) 2
x = 
2

( )  2.999989 
x 33 =  
 2.000025 
tol = 10−5
Método del descenso mas pronunciado

Min. f ( x ) = ( x1 + x2 − 11) + ( x1 + x2 − 7 )
2 2 2 2

 2 ( x12 + x2 − 11) ( 2 x1 ) + 2 ( x1 + x2 2 − 7 ) 
f ( x ) =  
 2 ( x1 + x2 − 11) + 2 ( x1 + x2 − 7 ) ( 2 x2 ) 
2 2

( 0) 2
x = 
2

 = min f ( x
* ( 0)
− f ( x ( 0 ) ) )
x 1 = x 0 −  *f ( x ( 0 ) )
( ) ( )
Método del descenso mas pronunciado

( 0) 2
x = 
2

( )  2.999999 
x 13 =  
 2.000002 

tol = 10−5
Método del descenso mas pronunciado - Algoritmo

x( )  D  ; f ( x ) ; k = 0
0 n

d = −f x ( ( ) k)

* = Min. f ( x ( ) +  d )
k

x(
k +1)
= x( ) +  * d
k

 * d  tol
si
no
x* = x (
k +1)

k = k +1
Método de Newton

• El gradiente negativo apunta directamente hacia el mínimo solo


cuando los contornos de ƒ(x) son circulares, por lo tanto el
gradiente negativo no es una buena dirección global (en general)
para funciones no lineales.
• El método del descenso mas pronunciado emplea aproximaciones
lineales sucesivas al objetivo y requiere valores de la función
objetivo y su gradiente en cada iteración.
• Un avance es considerar el uso de información de orden superior
(derivadas segundas) en un esfuerzo por construir una estrategia
de iteración más global.
Método de Newton
• A partir de la serie de Taylor, formamos una aproximación
cuadrática de ƒ(x) y suponemos que esta representa a la función.
( ) + ( x − x ) f ( x ) + ( x − x )
f ( x) = f x
(k ) (k ) T (k ) 1
2
(k ) T
( )( x − x )
( )
2 f x k (k )

f ( x ) = f ( x ) +  f ( x ) ( x − x )
(k ) 2 (k ) (k )

• Se propone una secuencia de iteración en la que el siguiente


punto, es un punto en donde el gradiente de la aproximación es
cero.

( ( )
)
f x k +1 = f x k +  2 f x k ( ) ( )
( )( x
( ) ( k +1)
−xk )=0
( )

• Siguiendo la estrategia de resolución propuesta:

x k +1 = x k +  k s ( x ( k ) )  ( x ( k +1) − x ( k ) ) =  k s ( x ( k ) )
( ) ( )
Método de Newton - I
• Reemplazando y asumimos =1:

) = − ( f ( x )) ( )
−1

( )
f x
(k )
+ 2 f x( ) (k )
 k s ( x( k ) ) = 0  s ( x
(k ) 2 (k ) ( )
f x k

• Por lo que finalmente:

( ( )) ( )
−1
( k +1) (k ) (k ) ( )
x =x −  f x
2
f x k
Método de Newton - I - Ejemplo

(
Ejemplo: Min. f ( x ) = x1 + x2 − 11 ) + ( x1 + x2 − 7)
2 2 2 2

 2 ( x12 + x2 − 11) 2 x1 + 2 ( x1 + x2 2 − 7 ) 
f ( x ) =  
 2 ( x1 + x2 − 11) + 2 ( x1 + x2 − 7 ) 2 x2 
2 2


 f ( x) = 
2
8 x1
2
+ 4 ( x1 + x2 − 11)
2
+2 4 x1 + 4 x2 

 4 x1 + 4 x2 2 + 8 x2 + 4 ( x1 + x2 − 7 ) 
2 2
Método de Newton - I - Ejemplo

2
= 3.584428 −1.848126 
(9)
x
( 0) T
x =  
2 tol = 10−5
Método de Newton - II

• El método de Newton minimizará una función cuadrática (desde


cualquier punto de partida) en exactamente un paso.
• La experiencia ha demostrado que el método de Newton puede
ser poco confiable para funciones no cuadráticas.
• Es decir, el paso de Newton a menudo será grande cuando x(0) está
lejos de x*, y existe la posibilidad real de divergencia.
• Es posible modificar el método de una manera lógica y simple para
asegurar el descenso agregando una búsqueda de línea como en el
método del descenso mas pronunciado.

 = min f x
*
( (k )
− k
(( )) ( ))
 f x
2 (k )
−1
f x k
( )

(  f ( x ) ) f ( x )
−1
( k +1) (k ) (k ) (k )
x =x − * 2
Método de Newton - II

• El método de Newton II (o modificado) es confiable y eficiente


cuando la primera y la segunda derivada se calculan de manera
precisa y económica (desde el punto de vista computacional).
• La mayor dificultad es la necesidad de calcular y resolver en cada
iteración el conjunto de ecuaciones lineales que involucra el
termino de la matriz Hessiana.
Método de Newton - II

x( )  D 
0 n
( )
; f ( x ) ;  2 f x k ; k = 0
( )

( ( )) ( )
−1 También puede
(k ) (k )
d =−  f x 2
f x resolverse como un SEL

 * = Min. f x ( ) +  d ( k
)
( k +1) (k )
x =x +*d

 * d  tol
si
no
x* = x (
k +1)

k = k +1
=  2 2  x = 3 2
( 0) T ( 5) T
x
tol = 10−5
Claves para implementar en Scilab

• Programar las “function” necesarias en las dimensiones correctas.


• Manejar las incógnitas como un único vector.
• Tener una buena implementación de los algoritmos de búsqueda
unidimensional.
• Una buena herramienta es programar una “function” que realice la
búsqueda de línea.

Volvemos a Optimización Unidimensional…


Método de interpolación parabólica sucesivas

x1 , x2 , x3 x1  x2  x3

x4
extremo de la parabola que pasa por ( x1 , f ( x1 ) ) , ( x2 , f ( x2 ) ) y ( x3 , f ( x3 ) )

si
x4 − x3  tol x4 extremo

no

x1 = x2 ; x2 = x3 ; x3 = x4
Búsqueda de línea con MIPS

Min. f x ( (i )
+d )
Función a minimizar Solución actual Tamaño del salto Dirección de búsqueda
f: n
→ x( ) 
i n
 d n

Objetivo de la búsqueda de línea


Búsqueda de línea con MIPS

x ,d 
0 n

1 ,  2 ,  3 

4
extremo de la parabola que pasa por:

( , f ( x
1
0
)) ( (
+ 1 d ,  2 , f x +  2 d
0
) ) y ( , f ( x
3
0
+ 3 d ))

si
 4 −  3  tol  4 extremo

no

1 =  2 ;  2 =  3 ;  3 =  4
Búsqueda de línea en Scilab con MIPS
function alfa=linesearchMIPS(fun, xk,d,a_0)
x1 = a_0*0.98;
x2 = a_0;
x3 = a_0*1.02;
for i= 1:100
A=[x1^2 x1 1
x2^2 x2 1
x3^2 x3 1 ];
b=[fun(xk + x1*d)
fun(xk + x2*d)
fun(xk + x3*d)];
xx=A\b;
x4=-xx(2)/(2*xx(1));
if norm(x4-x3) < 1e-6
alfa=x4;
break
end
x1=x2; x2=x3; x3=x4;
end
if i==100
alfa=[];
end
endfunction
Método de Newton

x( ) =  0 ; k = 0
0

x(
k +1)
= x( ) −
k ( )
f ' x(
k)

f '' ( x ( ) )
k

x(
k +1)
− x(
k) si
x(
 r k +1)
(k ) es un extremo
x

no

k = k +1
Búsqueda de línea con Newton

Min. f x ( (k )
+d )
Función a minimizar Solución actual Tamaño del salto Dirección de búsqueda
→ x( )   d
n i n n
f:
Objetivo de la búsqueda de línea
Método de Newton
x ,d 
0 n

( 0)
  ; k =0


( k +1)
= ( ) −
k (
f ' x +( )d
0 k
)
f '' ( x +( )d )
0 k

( k +1)
−(
k) si
 ( k +1)
(k )
 r  es un extremo

no

k = k +1
Búsqueda Lineal en Scilab con Newton

( x( k ) + d )
( )
df
f ' x( ) +  d =
k

d

df ( x( k ) + d ) =
f x1 f x2
+ + +
f xn
d x1  x2  xn 
df ( x( k ) + d ) f f f
= d1 + d2 + + dn
d x1 x2 xn

(
df x
(k )
+d ) = f
(x )
(k ) T
+d d
d
Búsqueda Lineal en Scilab con Newton

df ( x( k ) + d ) =
f
d1 +
f
d2 + +
f
dn
d x1 x2 xn
d2 f ( x( k ) + d )   2 f x1
= 2 +
 2 f x2
+ +
 2 f xn 
 d1
d 2  x1  x1x2  x1xn  
  2 f x1  2 f x2  2 f xn 
+ + + +  d2
 x2 x1  x2  x2 xn  
2

+
  2 f x1  2 f x2  2 f xn 
+ + + +  dn
 xn x1  xn x2  xn  
2
Búsqueda Lineal en Scilab con Newton

d2 f ( x( k ) + d )  2 f 2 f 2 f 
=  2 d1 + d2 + + d n  d1
d 2  x1 x1x2 x1xn 
 2 f 2 f 2 f 
+ d1 + d2 + + dn  d2
 x2 x1 x2 x2 xn 
2

+
 2 f 2 f 2 f 
+ d1 + d2 + + dn  dn
 xn x1 xn x2 xn 2

Búsqueda Lineal en Scilab con Newton
d2 f ( x( k ) + d )   2 f 2 f 2 f   2 f 2 f 2 f 
d 2
=  2 d1 + d2 + + d n  d1 +  d1 + d2 + + dn  d2

 1
x x1x 2 x1xn  
 2 1
x x x2
2
x2 xn 
 2 f 2 f 2 f 
+ + d1 + d2 + + d n  dn

 n 1
x x x n x2 xn 2 

 2 f ( x0 )  2 f ( x0 )  2 f ( x0 )
d1
x1x1 x1x2 x1xn
 2 f ( x0 )  2 f ( x0 )  2 f ( x0 )
d2
x2 x1 x2 x2 x2 xn

 2 f ( x0 )  2 f ( x0 )  2 f ( x0 )
dn
xn x1 xn x2 xn xn

d1 d2 dn

d 2 f
T
( x( k ) + d ) d
Búsqueda Lineal en Scilab con Newton

function alfa=linesearchMN(Fun, Grad, Hess, xk, d, a_0)


a=a_0;
for i=1:100
fp = Grad(xk + a*d)'*d;
fpp= d'*Hess(xk + a*d)*d;
a=a-fp/fpp;
if norm(fp/fpp) < 1e-5
alfa=a;
break
end
end
if i==100
alfa=[];
end
endfunction
Ejemplo

Min. f ( x ) = ( x1 + x2 − 11) + ( x1 + x2 − 7 )
2 2 2 2

 2 ( x12 + x2 − 11) 2 x1 + 2 ( x1 + x2 2 − 7 ) 
f ( x ) =  
 2 ( x1 + x2 − 11) + 2 ( x1 + x2 − 7 ) 2 x2 
2 2


 f ( x) = 
2
8 x1
2
+ 4 ( x1 + x2 − 11)
2
+2 4 x1 + 4 x2 

 4 x1 + 4 x2 2 + 8 x2 + 4 ( x1 + x2 − 7 ) 
2 2
Ejemplo
function f=fun(x)
f=(x(1)^2 + x(2) - 11)^2 + (x(1)+x(2)^2-7)^2
endfunction

function Gf=gradf(x)
Gf(1,1) = 2*(x(1)^2 + x(2) - 11)*(2*x(1)) + 2*(x(1)+x(2)^2-7)
Gf(2,1) = 2*(x(1)^2 + x(2) - 11) + 2*(x(1)+x(2)^2-7)*(2*x(2))
endfunction

function Hf=hessf(x)
Hf(1,1) = 2*(2*x(1))*(2*x(1)) + 2*(x(1)^2 + x(2) - 11)*(2) + 2
Hf(1,2) = 2*(2*x(1)) + 2*(2*x(2))
Hf(2,1) = 2*(2*x(1)) + 2*(2*x(2))
Hf(2,2) = 2 + 2*(2*x(2))*(2*x(2)) + 2*(x(1)+x(2)^2-7)*(2)
endfunction
Ejemplo
x1=linspace(-5,6,1000);
x2=linspace(-3,4,1000);
for i=1:length(x1)
contour(x1,x2,z,[2 5 10 [Link] 170 180 200 350 500])
for j=1:length(x2)
z(i,j)=fun([x1(i);x2(j)]);
end
end
Ejemplo – 1 variable a la vez
Ejemplo – Descenso mas pronunciado
Ejemplo – Newton
Ejercicio

Min. f ( x ) = (1 − x1 ) + 100 ( x2 − x2 2
)
2
1

También podría gustarte