Optimisation- having variable objective function
Show older comments
Guys I have a problem in preparing both Objective and Constraint Function. Type of problem: Minimising with Non-linear Constraint Imagine I want to minimise an objective function which is a function of Omega and Omega=1:10 (assume). The objective function has 3 variable (X1 X2 X3) which are the optimisation’s variable and needs to be find by optimisation tools. Similar to objective function, I have a constrain function (which is again a function of Omega and has X1 X2 X3 inside). I know Matlab can deal with problems called semi-infinite constraints, however, my objective function is similar to the constrains (in case of having Omega). Any advice is highly appreciated.
1 Comment
yem
on 14 Dec 2014
hello Nima please i have a system with 2 delays d1 and d2 which are the optimisation’s variable and needs to be find by optimisation tools. Similar to objective function, I have a constrain function (which is again a function of x and has d1 d2 (reals valors) inside).. a help please??
Answers (1)
Matt J
on 10 Nov 2012
0 votes
See the documentation on passing extra parameters
5 Comments
Nima
on 10 Nov 2012
You're not meant to pass the entire vector p1=1:10 to the OF and constraints. You're meant to loop over the values of p1, and re-solve the problem for each value:
for i=1:length(p1)
OF=@(x) f(x,p1(i));
nlconst=@(x) c(x,p1(i));
X(:,i)=fmincon(OF,x0,...,nlconst,...);
%x0=X(:,i); initializing with the last solution may speed things up.
end
Nima
on 14 Nov 2012
yem
on 14 Dec 2014
please i have a system with 2 delays d1 and d2 which are the optimisation’s variable and needs to be find by optimisation tools. Similar to objective function, I have a constrain function (which is again a function of x and has d1 d2 (reals valors) inside).. a help please??
Categories
Find more on Solver Outputs and Iterative Display in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!