Optimizacion con MATLAB
Ren Huerta , Javier Lpez Rubio & Martn Rivera Toledo
Introduccin
1. Convexidad y concavidad
2. Sistemas multivariables
min f ( x1 , x2 ,..., xn )
sujeta a
h j ( x1 , x 2 ,..., x n ) = 0
g k ( x1 , x2 ,..., xn ) = 0
j = 1,2,..., m
k = 1,2,..., p
condiciones necesarias y suficientes para un mnimo local
caso a. Sin restricciones
*
f ( x1 , x 2 ,..., x n ) = 0
*
&
H ( x1 , x 2 ,..., x n ) sea semi - definida positiva
donde
f
[f ]i =
xi
&
2 f
[ H ]ij =
xi x j
caso b. Con restricciones
si se define la funcin de Lagrange como
m
j =1
k =1
L( xi , u j , v k ) = f ( xi ) + h j ( xi )u j + g k ( xi )v k
Las condiciones necesarias y suficientes estn dadas por
*
L( xi , u j , v k ) = f ( xi ) + h( xi )u + g ( xi )v = 0
ui 0
deben de aplicar en una sola direccin
g k ( x1 , x 2 ,..., x n ) 0
*
h j ( x1 , x2 ,..., xn ) = 0
*
u k g k ( x1 , x 2 ,..., x n ) = 0
complementarias
k = 1,2,..., p
j = 1,2,..., m de factibilidad
k = 1,2,..., p
Z T H ( x1 , x 2 ,..., x n ) Z > 0
para todos los vectores
Z que cumplen con
J ( x1 , x 2 ,..., x n ) Z = 0
&
los renglones son las
derivadas parciales de las restricciones que estn activas en x*, es
decir, Z son las direcciones de las restricciones
I.
Minimizacin de funciones de una variable
min f ( x)
sujeta a
x1 x x 2
Estructura en Matlab
[x,fval,exitflag,output]= fminbnd ( fun,x1,x2,options )
Ejemplo [ fminvar.m ]
3 9 2
f(x)
=
x
- x +6 x+20
min
Calcular
2
con 0 x 2
Tiene mximos esta funcin?, cules son los puntos
crticos?
II. Minimizacin de funciones de varias variables
1. Minimizacin de funciones sin restricciones
min f ( x1 , x 2 ,..., x n )
Estructura en Matlab
[x,fval,exitflag,output,grad,hessian] =
fminunc( fun,x0,options )
Ejemplo [ prosenbrock.m & rosenbrock.m ]
Min f (x1,x2) = 100 ( x2 - x12 )2 + ( 1 - x1 )2
Con un estimado inicial de x1
= -1.2 & x2 = 1.0
2. Minimizacin de una funcin con restricciones
min f ( x1 , x 2 ,..., x n )
sujeta a
Ax b
Aeq x = beq restricciones lineales
Cx 0
C eq x = 0 restricciones no lineales
y con
xlb x xub
Estructura en Matlab
[x,fval,exitflag,output,lambda,grad] =
fmincon( f,x0,A,b,Aeq,beq,xlb,xub,nonlcon,options )
Ejemplo 1 [ehlp8_26.m & p8_26]
min f(x) = x12 + x22 + x32
sujeta a las restricciones siguientes
g1(x) = 2 x1 + x2 5
g2(x) = x1 + x3 2
g3(x) = x1 + 2 x2 + x3 10
h1(x) = 2 x1 - 2 x2 + x3 = -2
h2(x) = 10 x1 + 8 x2 - 14x3 = 26
h3(x) = -4 x1 + 5 x2 - 6 x3 = 6
x1 1 x2 2 x3 0
con x0=[-1 -1 -1]
Ejemplo 2 [ehlp_812.m & f_p812.m]
min f = (x1-1)2 + x22
sujeto a las restricciones
h = x12 + x22 + x1 + x2 = 0
g = -x1 + x22 0
con x0=[-1 -1 ]
3. Minimizacin de una funcin cuadrtica
1
T
min ( x1 , x 2 ,..., x n ) T [ M ]( x1 , x 2 ,..., x n ) + d ( x1 , x 2 ,..., x n )
2
sujeta a
Ax b
Aeq x = b eq
xlb x xub
Estructura en Matlab
[x,fval,exitflag,output,lambda] =
quadprog( M,d,A,b,Aeq,beq,xlb,xub,x0,options )
Ejemplo 1 [qpehlp8_26.m]
min f(x) = x12 + x22 + x32
sujeta a las restricciones siguientes
g1(x) = 2 x1 + x2 5
g2(x) = x1 + x3 2
g3(x) = x1 + 2 x2 + x3 10
h1(x) = 2 x1 - 2 x2 + x3 = -2
h2(x) = 10 x1 + 8 x2 - 14x3 = 26
h3(x) = -4 x1 + 5 x2 - 6 x3 = 6
x1 1 x2 2 x3 0
con x0=[-1 -1 -1]
el cual se puede expresar con la forma matricial
2 0 0
M = 0 2 0
0 0 2
0
d = 0
0
2 2 1
Aeq = 10 8 14
4 5
6
2 1 0
A = 1 0 1
1 2 1
2
beq = 26
6
5
b = 2
10
1
x lb = 2
0
4. Minimizacin del problema de programacin lineal
T
min c ( x1 , x 2 ,..., x n )
sujeta a
Ax b
Aeq x = beq
Estructura en Matlab
[x,fval,exitflag,output,lambda] =
linprog( f,a,b,aeq,beq,lb,ub,x0,options )
Ejemplo 1 [ liprogv102_2.m ]
min f(x) = x1 + x2 + x3
sujeta a las restricciones siguientes
g1(x) = 2 x1 + x2 5
g2(x) = x1 + x3 2
g3(x) = x1 + 2 x2 + x3 10
h1(x) = 2 x1 - 2 x2 + x3 = -2
h2(x) = 10 x1 + 8 x2 - 14x3 = 26
h3(x) = -4 x1 + 5 x2 - 6 x3 = 6
x1 1 x2 2 x3 0
5. Mnimos cuadrados no lineales
2
min [ f k ( x1 , x 2 ,..., x n )]
k =1
sujeta a
xlb x xub
Estructura en Matlab
[x,resnorm,residual,exitflag,output,lambda,jacobian] =
lsqnonlin( fun,x0,lb,ub,options )
Ejemplo 1 [fminquad.m & xyquad.m]
Calcule los parmetros a1, a2 & a3 para representar el
conjunto de datos siguiente
Xi
Yi
10
1.0
20
1.26
30
1.86
40
3.31
Para el modelo
Y = ea1 + a2 x + a3 x
aplicando el mtodo de mnimos cuadrados y trace la
prediccin del modelo
50
7.08