Optimización de funciones sin restricciones y con restricciones Práctico Nº 3 Optimización de funciones sin restricciones y con restricciones
Optimización sin restricciones con MatLab % ------- OPTIMIZACION SIN RESTRICCIONES -------- % Introducción de la función: uso de la sentancia INLINE fun=inline('-(x(1)^2+2*x(2)^2+2*x(1)*x(2)^2)'); % Valor inicial para que comience el algoritmo x0=[0,1]; % Introducción del conjunto de opciones de optimización options=optimset('LargeScale','off'); % Uso de la función: FMINUNC [x,fval,exitflag,output]=fminunc(fun,x0,options);
Optimización sin restricciones con MatLab % Definición de la función objetivo fun=inline('x(1)^2-3*x(1)*x(2)+4*x(2)*x(3)+3*x(2)^2+6*x(3)^2'); x0=[0,0,0]; options=optimset('LargeScale','off'); [x,fval,exitflag,output]=fminunc(fun,x0,options); x fval exitflag
fun=inline('2-3*x(1)^2+3*x(1)^2*x(2)+x(2)^3-3*x(2)^2'); options=optimset('LargeScale','off'); [x,fval,exitflag,output]=fminunc(fun,x0,options); x fval Exitflag
Optimización con restricciones con MatLab % Paso 1: definición de la función fun=inline('-(x(1)^2+3*x(1)*x(2)+x(2)^2)'); % Paso 2: definición de la matriz Aeq y el vector beq A=[1 1]; b=[100]; % Definición de un valor inicial para que comience el algoritmo x0=[0 1]; % Paso 4: introducción del conjunto de opciones options=optimset('LargeScale','off'); % Paso 5: función para encontrar el óptimo [x,fval,exitflag,output,lambda]=fmincon(fun,x0,[],[],A,b,lb,[],[],options); % Paso 6: obtención del resultado x fval lambda exitflag
Optimización con restricciones con MatLab % Paso 1: definición de la función fun=inline('-(x(1)^2+x(2)^2)'); % Paso 2: definición de la matriz Aeq y el vector beq A=[1 2]; b=[4]; % Definición de un valor inicial para que comience el algoritmo x0=[0 1]; % Paso 4: introducción del conjunto de opciones options=optimset('LargeScale','off'); % Paso 5: función para encontrar el óptimo [x,fval,exitflag,output,lambda]=fmincon(fun,x0,[],[],A,b,lb,[],[],options); % Paso 6: obtención del resultado x fval lambda exitflag
% Solución gráfica del ejemplo de clase X=-3:6; Y=((X-1).^3).^(1/2); area(X,Y) hold on [U V]=meshgrid(-3:6,-3:6); contour(U,V,U.^2+V.^2); hold off
Gráfico