I have a constrained minimization problem with objective function (in simplified form)
z=b1+p1*log(p1/(p1+p2+p3))+b2+p2*log(p2/(p1+p2+p3))+b3+p3*log(p3/(p1+p2+p3)) where b1=a1*2,%(a1 is a constant input) b2=a2*3,%(a2 is a constant input) b3=a3*4,%(a3 is a constant input) and constraints 2*p1+3*p2=A1,%(A1 is a constant input) 3*p2+5*p3=A2,%(A2 is a constant input) p1>=0, p2>=0, p3>=0,
so, I wrote on my script a1=input('a1='); a2=input('a2='); a3=input('a3='); A1=input('A1='); A2=input('A2='); A=[-1,0,0;0,-1,0,0;0,0,-1];B=[0;0;0];Aeq=[2,3,0;0,3,5];Beq=[A1;A2]; optimal_p1p2p3=fmincon(@fozw,[0.1;0.1;0.1],A,B,Aeq,Beq); function z=fozw(w); p1=w(1);p2=w(2);p3=w(3); z=b1+p1*log(p1/(p1+p2+p3))+b2+p2*log(p2/(p1+p2+p3))+b3+p3*log(p3/(p1+p2+p3)); end end Then, when I run the script. It appeared on command window solver has stop prematurely fmincon stop because it exceeded function evaluation limit optimal_p1p2p3= NaN NaN NaN
What is the possible error?.
No products are associated with this question.
Your function has logarithms and division. It seems to me quite likely that fmincon steps into a region where the function is undefined, and cannot proceed.
I suggest that you do two things:
MATLAB mathematical toolbox documentation