Run fmincon with different initial value

5 views (last 30 days)
I have an optimization problem with nonlinear inequality.I write the MATLAB code using fmincon given below. Now,i want to run the code for different initial point using a loop for check the value..How can i do it?
r=1;
d=80;
a=2.0944;
c = @(x)[(a.*x(1).^2./(4*r)) + ((a/2 + 2).*x(1))- x(2);
-(a.*x(1).^2./(4*r))- ((a/2 + 2).*x(1))+((2*d)+((a*d)/2)+(a*d.^2)/(4*r)-(4*r))-x(2)];
ceq = @(x)[ ];
nonlinfcn = @(x)deal(c(x),ceq(x));
obj = @(x)x(2);
opts = optimoptions(@fmincon,'Algorithm','interior-point');
[x,fval,exitflag] = fmincon(obj,[10;100],[],[],[],[],[10;100],[500;100000],nonlinfcn,opts);

Accepted Answer

Torsten
Torsten on 13 Jul 2015
Edited: Walter Roberson on 13 Jul 2015
for j=1:n
x0=[x10(j);x20(j)];
[x,fval,exitflag] = fmincon(obj,x0,[],[],[],[],[10;100],[500;100000],nonlinfcn,opts);
disp(x);
end
where x10 and x20 are predefined arrays of initial values for x1 and x2.
Best wishes
Torsten.
  3 Comments
rumpa dasgupta
rumpa dasgupta on 14 Jul 2015
Torsten, If i want to run the code for random initial value instead of predefined array of initial values for x1 and x2,then how can i do it?

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!