row dimension of aeq is inconsistent with length of beq. Help me pls.

2 vues (au cours des 30 derniers jours)
Dam Tung
Dam Tung le 18 Avr 2019
Commenté : Dam Tung le 18 Avr 2019
Dear all,
Help me pls. I trying to resolve optimization task with code "fmincon". Below show the codes I did. But when I started solving, I met fault "row dimension of aeq is inconsistent with length of beq". Anyones explain me about this for me, pls.
function f = objecfun(x)
f = 1203*(x(1)*x(2)*x(3))^0.759;
end
function [c, ceq] = lim(x)
c=[1.01*1.025*x(8)*x(1)*x(2)*x(4)-0.176*x(1)*x(2)*x(3)-0.166*(x(1)*x(2)*x(3))^(2/3)-0.08*x(5)-127;
2*x(2)*sqrt(1.017*x(9)/((x(9)-x(8))*1.06*x(9)^2/(12*x(9))));
73-1.6*x(8)*x(6)*(x(2)-2*0.2)*(x(3)-x(7)-2*0.2)];
ceq = [];
end
clc; clear all;
A=[6.7 0 -1 1 0 0 0 0 0];
b=-0.24;
lb=[24 5 2.5 1.5 600 5 0.8 0.5 0.6];
ub=[40 9 4.5 2.8 2000 7 1.2 0.6 0.75];
x0=[25 6 3 2 800 6,1 0.5 0.6];
[x,fval,exitflag,output,lambda]=fmincon('objecfun',x0,A,b,lb,ub,[],[],'lim');
end

Réponse acceptée

Steven Lord
Steven Lord le 18 Avr 2019
You passed the inputs into fmincon in the wrong order. From the documentation page, the syntax you're calling is:
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)
fmincon interprets your lb and ub as the linear equality constraints, not the bounds. Move the two empty arrays [] to between b and lb since you don't have linear equality constraints.

Plus de réponses (0)

Catégories

En savoir plus sur Linear Programming and Mixed-Integer Linear Programming dans Help Center et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by