MATLAB: Optimizing minimization with fmincon function

fminconminimizationoptimization

Dear all,
I have this function which I minimize:
g=randn(1000,1);
u=randn(1000,1);
y=randn(1000,1);
options = optimoptions('fmincon','Display','off');
f = @(x) sum( ( y-x(1)*g-u*x(2) ).^2 );
nonlcon = @unitdisk;
x = fmincon(f,[0.2 0.02],[],[],[],[],[],[],nonlcon,options);
where
function [c,ceq] = unitdisk(x)
c = - x(2) +0.01;
ceq = [];
Is there a faster way of doing this minimization?
Thanks in advance.

Best Answer

  • Hi,
    By setting up the solver algorithm in the option settings, the simulation time cna be shortened substantially. E.g.
    g=randn(1000,1);
    u=randn(1000,1);
    y=randn(1000,1);
    options = optimoptions('fmincon','Display','off', 'Algorithm', 'active-set');
    f = @(x) sum( ( y-x(1)*g-u*x(2) ).^2 );
    nonlcon = @unitdisk;
    x = fmincon(f,[0.2 0.02],[],[],[],[],[],[],nonlcon,options);
    This algorithm shortens the computation time by about 50%. If you are not satisfied with this, you can investigate furthermore with the option settings for fmincon.
    Good luck.