Está en la página 1de 2

Tcnicas de Optimizacin en Ingeniera, Mster Oficial en Tecnologas de la Informacin y las Comunicaciones, curso 2006/2007.

Prctica 1. Programacin lineal y cuadrtica usando Matlab.


Matlab ofrece programas para solucionar problemas de programacin lineal y cuadrtica, mediante las libreras en la toolbox de optimizacin. Cualquier versin de Matlab a partir de la 5.3 tiene disponible estas funciones. Programacin Lineal: La funcin de Matlab para resolver problemas de programacin lineal es linprog. Como podis ver en la ayuda de Matlab, esta funcin resuelve el siguiente problema: min(cT x)
x

Ax b As pues hay que poner el problema como un problema de minimizacin, con restricciones de igualdad o menor-igual. La funcin se invoca desde Matlab o desde un archivo .m como [x,fval,r]=linprog(c,A,b,Aeq,beq,LB,UB), con A, b, condiciones de menor-igual, Aeq, beq, condiciones de igualdad, LB cota inferior para las x, UB cota superior para las x. Ejercicio 1: Resolver el siguente programa lineal con la funcin linprog de Matlab min(z 80x1 60x2 ) 0.2x1 0.32x2 0.25 x1 x2 1 xi 0 Ejercicio 2: Resolver el siguente programa lineal con la funcin linprog de Matlab max(z 3x1 5x2 ) x1 4 x 2 6 3x1 2 x 2 18 xi 0

Nota: Ten cuidado con la funcin, hay que maximizarla, y recuerda que Matlab minimiza por defecto. Si no hay restricciones de igualdad introduce matrices vacas [] para Aeq y beq. Ejercicio 3: Resolver el siguente programa lineal con la funcin linprog de Matlab min(z x1 x2 ) x1 5x2 5 2x1 x2 4 xi 0

Programacin cuadrtica: La funcin de Matlab para resolver problemas de programacin lineal es quadprog. Como podis ver en la ayuda de Matlab, esta funcin resuelve el siguiente problema:
1 min( x T Hx c T x) x 2 Ax b

La funcin se invoca desde Matlab o desde un archivo .m como [x,fval,r]=quadprog(H,c,A,b,Aeq,beq,LB,UB,x0), con A, b, condiciones de menorigual, Aeq, beq, condiciones de igualdad, LB cota inferior para las x, UB cota superior para las x, x0 punto inicial para la optimizacin (si conocido).

Ejercicio 4: Resolver el siguiente problema:


max( z 10x1 20x 2 30x3 10x1 x2 8x1 x3 6x 2 x3 x1 2x 2 x3 ) x1 2x2 x3 10
2 2 2

xi 0

También podría gustarte