OPTIMIZACIN CON RESTRICCIONES DE IGUALDAD PASO 1 Introducir

  • Slides: 18
Download presentation
OPTIMIZACIÓN CON RESTRICCIONES DE IGUALDAD

OPTIMIZACIÓN CON RESTRICCIONES DE IGUALDAD

PASO 1 Introducir la función: fun=inline(‘-x(1)*x(2)’); (Colocar la expresión entre comillas simples y terminar

PASO 1 Introducir la función: fun=inline(‘-x(1)*x(2)’); (Colocar la expresión entre comillas simples y terminar la sentencia con ; )

Paso 2 Como la restricción es lineal y de igualdad, se definen la matriz

Paso 2 Como la restricción es lineal y de igualdad, se definen la matriz Aeq y el vector beq. Aeq = [1 1]; beq =[2];

Paso 3 Se define un valor inicial para que comience el algoritmo (los valores

Paso 3 Se define un valor inicial para que comience el algoritmo (los valores van entre corchetes separados por un espacio). x 0 = [-1 1];

Paso 4 Se introducen un conjunto de opciones de optimización, sólo se deja desactivada

Paso 4 Se introducen un conjunto de opciones de optimización, sólo se deja desactivada la opción Large. Scale colocando para ello off Options = optimset(‘Large. Scale’, ’off’);

Paso 5 Se invoca la función fmincon [x, fval, exitflag, output, lambda] = fmincon(fun,

Paso 5 Se invoca la función fmincon [x, fval, exitflag, output, lambda] = fmincon(fun, x 0, [], Aeq, beq, [], [], options); La ventana de comandos se ve de la siguiente forma:

Paso 6 Para obtener la solución del problema se coloca x, se cliquea “enter”,

Paso 6 Para obtener la solución del problema se coloca x, se cliquea “enter”, aparece el valor de x que optimiza la función. Luego se coloca fval y se cliquea “enter”, aparece el valor óptimo de la función objetivo. Luego se escribe lambda, seguido de “enter” y el programa calcula el valor del multiplicador de Lagrange

OPTIMIZACIÓN CON RESTRICCIONES DE DESIGUALDAD

OPTIMIZACIÓN CON RESTRICCIONES DE DESIGUALDAD

Paso 1 Introducir la función de la siguiente manera: fun=inline(‘(x(1)-3)^2+(x(2)-4)^2’); (Colocar la expresión entre

Paso 1 Introducir la función de la siguiente manera: fun=inline(‘(x(1)-3)^2+(x(2)-4)^2’); (Colocar la expresión entre comillas simples y terminar la sentencia con ; )

Paso 2 Como la restricción es de desigualdad lineal, se definen la matriz A

Paso 2 Como la restricción es de desigualdad lineal, se definen la matriz A y el vector b. Además se agrega la condición de no negatividad de las variables A = [1 1]; b =[4]; lb=[0]

Pasos 3 y 4 Se define un valor inicial para que comience el algoritmo

Pasos 3 y 4 Se define un valor inicial para que comience el algoritmo x 0 = [0 1]; Se introducen un conjunto de opciones de optimización, sólo se deja desactivada la opción Large. Scale colocando para ello off Options = optimset(‘Large. Scale’, ’off’);

Paso 5 Uso de la función fmincon [x, fval, exitflag, output, lambda] = fmincon(fun,

Paso 5 Uso de la función fmincon [x, fval, exitflag, output, lambda] = fmincon(fun, x 0, [], A, b, lb, [], options); La ventana de comandos con la solución se ve de la siguiente forma:

Programación no lineal Paso 1 Introducir la función de la siguiente manera: fun=inline(‘x(1)^2+x(2)-1’); Paso

Programación no lineal Paso 1 Introducir la función de la siguiente manera: fun=inline(‘x(1)^2+x(2)-1’); Paso 2 La restricción es no lineal y de desigualdad. Se debe crear un programa separado al cual se convoca en el programa principal: File New M-File

Function[c, ceq]=restrdesig(x); C=[x(1)^2+x(2)^2 -1]; C=ceq=[]; Paso 3: se define un valor inicial para que

Function[c, ceq]=restrdesig(x); C=[x(1)^2+x(2)^2 -1]; C=ceq=[]; Paso 3: se define un valor inicial para que comience el algoritmo x 0 = [0 1];

Paso 4: se introduce un conjunto de opciones de optimización Options = optimset(‘Large. Scale’,

Paso 4: se introduce un conjunto de opciones de optimización Options = optimset(‘Large. Scale’, ’off’); Paso 5: se invoca la función fmincon [x, fval, exitflag, output, lambda] = fmincon(fun, x 0, [], [], [], ’restrdesig’, options);