Error using barrier. Nonlinear constraint function is undefined at initial point. Fmincon cannot continue.
18 views (last 30 days)
Show older comments
My problem is a minimization problem, witht he following code:
x0 = [Pch; Pdis; zeros(N,1); zeros(N,1); 2*Eessmin];
SOC0 = 0;
C = [r ls Cinv Effch Effdis Ncyc Cmaint expPrice];
lb = [zeros(N,1); zeros(N,1); zeros(N,1); zeros(N,1); Eessmin]; % lower bounds of 0 and Essmin
ub = [Pch; Pdis; Pch; Pdis; Inf];
ot = ones(N,1);
beq = Prem ;
Aeq = spdiags([ot -ot ot -ot],[0 N 2*N 3*N],N,4*N+1);
X = sym('x',[4*N+1,1]);
G = sym('G', [N,1]);
s0 = sym('s0');
c = sym({'c1','c2','c3','c4','c5','c6','c7','c8'}.','real');
where I create a file for my non-linear constraints:
PBch = X(1:N)/X(2*N+1);
PBdis = X(N+1:2*N)/X(2*N+1);
nlc1 = s0 + cumsum(PBch*c(4)) - cumsum(PBdis*c(5)) - 1;
nlc2 = -s0 - cumsum(PBch*c(4)) + cumsum(PBdis*c(5));
nlc = [nlc1; nlc2];
nlceq = [];
nlc = subs(nlc, [c;s0], [C';SOC0]);
matlabFunction(nlc,nlceq,'vars',{X},'file','NLConsRev1');
and my objective function, Ctot, to be minimized:
matlabFunction(Ctot,'vars',{X},'file','objFcnRev1');
When using fmincon solver:
options = optimset('MaxFunEvals',Inf,'MaxIter',5000,'Algorithm','interior-point','Display','iter');
[x1, fval1,] = fmincon(@objFcnRev1,x0,Aeq,beq,[],[],lb,ub,@NLConsRev1,options);
I receive the following error:
Error using barrier
Nonlinear constraint function is undefined at initial point. Fmincon cannot continue.
Error in fmincon (line 797)
[X,FVAL,EXITFLAG,OUTPUT,LAMBDA,GRAD,HESSIAN] = barrier(funfcn,X,A,B,Aeq,Beq,l,u,confcn,options.HessFcn, ...
Error in OptRev1 (line 178)
[x1, fval1,] = fmincon(@objFcnRev1,x0,Aeq,beq,[],[],lb,ub,@NLConsRev1,options);
Any help would be greatly appreciated, thanks!
1 Comment
Walter Roberson
on 7 Sep 2017
After you matlabFunction you should issue a "clear" on the name of the function so that MATLAB does not accidentally use a previous version of it.
Answers (3)
Alan Weiss
on 7 Sep 2017
You didn't give many of the parameters used in your code, such as N, so we cannot reproduce your problem.
However, it is clear that fmincon is complaining about your nonlinear constraint function. Try running
[c,ceq] = NLConsRev1(x0)
and see what transpires. Fix that, and maybe other things will work, too.
By the way, your fmincon call begins
fmincon(@objFcnRev1,x0,Aeq,beq,[],[],...
Did you mean to put Aeq and beq in the third and fourth arguments? Usually they are fifth and sixth.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation
kamilya MIMOUNI
on 26 Oct 2019
Error using sqpInterface
Objective function is undefined at initial point. Fmincon cannot continue.
Error in fmincon (line 823)
[X,FVAL,EXITFLAG,OUTPUT,LAMBDA,GRAD,HESSIAN] = sqpInterface(funfcn,X,full(A),full(B),full(Aeq),full(Beq), ...
Error in Test3 (line 89)
Control_optimal = fmincon(problem)
i have this problem in matlab
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!