Optimizing in OOP with fmincon with:
size x0 = 1 8A=[];b=[];Aeq=[];beq=[];size lb = 1 8size ub = 1 8options = optimoptions('fmincon','Algorithm','sqp','Maxiterations',3); % 3 iter for tests
[x, fval, exitflag, output, lambda] = fmincon(@(x)this.jumphigh_obj(x),x0,A,b,Aeq,beq,lb,ub,@(x)this.jumpcon(x),options);
With an objective function
function f = jumphigh_obj(x)
and a constraint function
function [g, geq] = jumpcon(x) %where geq = []
The following error occurs:
Error using Leg_3DoF_ACA_jumpref_optimizer/jumphigh_objToo many input arguments.Error in Leg_3DoF_ACA_jumpref_optimizer>@(x)this.jumphigh_obj(x)(line 132) [x, fval, exitflag, output, lambda] = fmincon(@(x)this.jumphigh_obj(x),x0,A,b,Aeq,beq,lb,ub,@(x)this.jumpcon(x),options);Error in fmincon (line 536) initVals.f = feval(funfcn{3},X,varargin{:});Error in Leg_3DoF_ACA_jumpref_optimizer/run (line 132) [x, fval, exitflag, output, lambda] = fmincon(@(x)this.jumphigh_obj(x),x0,A,b,Aeq,beq,lb,ub,@(x)this.jumpcon(x),options);Caused by: Failure in initial objective function evaluation. FMINCON cannot continue.
I don't get it, I'm using the 10 fmincon input arguments as I'm supposed to so no extra arguments are passed as extra parameters to the obj function (right?). What am I missing here?
Best Answer