Incorrect solution for symmetric problems in fmincon
Mostrar comentarios más antiguos
If I maximize XX(1)^2+XX(2)^2 subject to x1 + x2 <=1 and use starting value X0=[0.5,0.5] I get as solution X=[0.5,0.5], although the two optima are X=[1,0] and X=[0,1].
Any clue how to prevent this from happening? (Other than using an asymmetric starting value). I already tried changing algorithm to sqp but that doesn't help.
See code:
function [XX,VAL] = test_con_opt()
clc;
close all;
dbstop if error;
sum_x = 1;
AA = [1,1];
bb = sum_x; %Inequality constraint: x1 + x2 <= sum_x
lb = [0,0];
pwr = 2;
%X0 = [0.25,0.75];
%X0 = [0.75,0.025];
X0 = [0.5,0.5];
[XX,mVAL] = fmincon(@(XX)obj_fun(pwr,XX(1),XX(2)),X0,AA,bb,[],[],lb);
VAL = - mVAL;
end
function [mVAL] = obj_fun(pwr,x1,x2)
mVAL = - (x1^pwr + x2^pwr);
end
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Solver Outputs and Iterative Display en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!