Fmincon problems with A and b matrices that differ depending on for loop
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi
Im doing a nonlinear optimization using fmincon that includes nonlinear equality constraints linear inequality constraints (These depend on values from two excel spreadsheets.
This is my code for the A and b matrices for j=1:3 for i=1:5
L = xlsread('hourly electric demand.xlsx');
Lth = xlsread('hourly thermal demand.xlsx');
if xin(1)>= L(j,i) && xin(2)>=Lth(j,i);
A(1,:)=[FIT RHI 0 0 -(FIT-Xe);-1 0 -1 0 0; 0 -1 0 -1 0];
b = [max(Pe*L(j,i))+Pth*max(Lth(j,i))+ Operation; -L(j,i);...
-Lth(j,i)];
elseif xin(1)<=L(j,i) && xin(2)<=Lth(j,i);
A(2,:)=[FIT RHI -Pe -Pth 0;-1 0 -1 0 0; 0 -1 0 -1 0];
b = [max(Pe*L(j,i)+Pth*Lth(j,i))+ Operation;-L(j,i); -Lth(j,i)];
elseif xin(1)>=L(j,i) && xin(2)<=Lth(j,i);
A(3,:)=[FIT RHI 0 -Pth -(FIT-Xe);-1 0 -1 0 0; 0 -1 0 -1 0];
b = [max(Pe*L(j,i)+Pth*Lth(j,i))+ Operation; -L(j,i); -Lth(j,i)];
elseif xin(1)<= L(j,i) && xin(2)>= Lth(j,i);
A(4,:)=[FIT RHI -Pe -Pth 0;-1 0 -1 0 0; 0 -1 0 -1 0];
b = [max(Pe*L(j,i)+Pth*Lth(j,i))+ Operation; -L(j,i); -Lth(j,i)];
end
end
end
and this is the code for the objective function
f = sum(((0.537*(L(j,i)-xin(1)))+(0.185*(Lth(j,i)-xin(2)))));
However I am getting the following error
??? Subscripted assignment dimension mismatch.
Error in ==> invoke at 42 A(1,:)=[FIT RHI 0 0 -(FIT-Xe);-1 0 -1 0 0; 0 -1 0 -1 0];
Do I need to make changes to the objective function since it only includes xin(1) and xin(2) whereas I am constraining to 5 difference xin?
thanks
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 3 Jun. 2011
[FIT RHI 0 0 -(FIT-Xe);-1 0 -1 0 0; 0 -1 0 -1 0] is clearly 2 dimensional, but you are trying to assign it to a vector A(1,:) . That isn't going to work.
Weitere Antworten (1)
Siehe auch
Kategorien
Mehr zu Systems of Nonlinear Equations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!