MATLAB: Row dimension of aeq is inconsistent with length of beq.

fmincon

Hello ,
I am trying to use the fmincon but am constantly getting the following error message.What do you suggest me to change? and one more question can we use more then one lower and upper bounds Thanks in advance.
X0=rand(3,1);
A = [];
B = [];
Beq=[0,0,0;0,0,0;0,0,0;0,0,23.2782000000000;0,26.4970000000000,26.4970000000000;0,26.5376000000000,0;24.0970000000000,25.9376000000000,0;24.6970000000000,24.7376000000000,0;25.2970000000000,24.1376000000000,24.1376000000000;29.1158000000000,26.5376000000000,26.5376000000000;0,24.4376000000000,24.4376000000000;0,25.3376000000000,0;0,25.0376000000000,0;0,26.1970000000000,0;0,26.5376000000000,26.5376000000000;0,25.8970000000000,25.8970000000000;0,0,0;0,26.2376000000000,0;0,25.0376000000000,0;0,0,0;0,0,0;0,0,0;0,0,0;0,0,0;0,0,0;0,0,0;0,0,0;0,0,0;0,0,0;0,0,0];
Aeq=[6,11.4000000000000,11.4000000000000;9,13.3500000000000,13.3500000000000;8.10000000000000,11.4000000000000,11.4000000000000;6.60000000000000,13.5000000000000,13.5000000000000;6.90000000000000,10.2000000000000,10.2000000000000;8.70000000000000,13.5000000000000,13.5000000000000;7.80000000000000,12.9000000000000,12.9000000000000;8.40000000000000,11.7000000000000,11.7000000000000;9,11.1000000000000,11.1000000000000;6.30000000000000,13.5000000000000,13.5000000000000;0,11.4000000000000,11.4000000000000;0,12.3000000000000,12.3000000000000;0,12,12;0,9.90000000000000,9.90000000000000;0,13.5000000000000,13.5000000000000;0,9.60000000000000,9.60000000000000;0,13.2000000000000,13.2000000000000;0,13.2000000000000,13.2000000000000;0,12,12;0,13.2000000000000,13.2000000000000;0,0,12.9000000000000;0,0,12.6000000000000;0,0,12;0,0,13.5000000000000;0,0,12.3000000000000;0,0,11.1000000000000;0,0,12;0,0,11.7000000000000;0,0,12.3000000000000;0,0,9.30000000000000];
lb=[0,0,0];
ub=[20.8602,52.1504,75.61881];
[x, fval] = fmincon('ff', X0, A, B, Aeq, Beq, lb, ub)
here is the problem:
R_t=[0.06 0.06 0.06 0.06 0.06 0.11 0.11 0.3 0.3 0.3 0.3 0.3 0.11 0.11 0.06 0.06 0.06 0.06 0.06 0.06 0.11 0.11 0.11 0.11;
0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.09 0.09 0.09 0.09 0.09 0.09 0.27 0.27 0.27 0.27 0.27 0.27 0.09 0.09 0.09;
0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.07 0.07 0.07 0.22 0.22 0.22 0.22 0.22 0.22 0.07 0.07 0.07 0.07 0.04];
X=[x(1);x(2);x(3)];
f=R_t(1,:).*X(1,:)+R_t(2,:).*X(2,:)+R_t(3,:).*X(3,:);

Best Answer

beq should be a vector that is the same length as the number of rows in Aeq. Your beq looks like an array the same size as Aeq.