Optimizing minimization with fmincon function
    5 views (last 30 days)
  
       Show older comments
    
    ektor
 on 25 May 2019
  
    
    
    
    
    Commented: Sulaymon Eshkabilov
      
 on 26 May 2019
            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.
0 Comments
Accepted Answer
  Sulaymon Eshkabilov
      
 on 25 May 2019
        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.
2 Comments
  Sulaymon Eshkabilov
      
 on 26 May 2019
				hi,
Again if you post your example, that would be good to answer specifically w.r.t your problem constraints.
More Answers (0)
See Also
Categories
				Find more on Surrogate Optimization in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
