Problems with fmincon constraints
Show older comments
Hello,
I am writing an algorithm for a project of mine, and at some point I need to find the value of alpha that will minimize a function subject to constraints.
This is what I have
x1=xi(1)+gammai(1)*alpha;
x2=xi(2)+gammai(2)*alpha;
x3=xd(1)+deltad(1)*alpha;
x4=xd(2)+deltad(1)*alpha;
falpha =matlabFunction((exp(x1))*(4*(x1).^2 + 2*(x2).^2 + 4*(x1)*(x2) + 2*(x2) + 1) + 0*x3 + 0*x4);
c=matlabFunction([-10-x1; x1+9; -x2+1;x2-1.5;-x3;x3-1;-x4;x4-1]);
ceq=matlabFunction([x1*x2-x1-x2+x3+1.5;x1*x2-x4+10]);
const=[c, ceq];
[alpha]=fmincon(falpha,0,[],[],[],[],[],[],const);
This is the error I get: Error using horzcat Nonscalar arrays of function handles are not allowed; use cell arrays instead.
Accepted Answer
More Answers (1)
As the error says, your const argument must be a single function handle returning two arguments [c,ceq]. You instead have passed two separate function handles.
4 Comments
Edgard El Cham
on 25 Oct 2017
Matt J
on 25 Oct 2017
function [c,ceq]=myConstraints(alpha)
....
Edgard El Cham
on 25 Oct 2017
Matt J
on 25 Oct 2017
Categories
Find more on Choose a Solver 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!