Fmincon problems with A and b matrices that differ depending on for loop

3 vues (au cours des 30 derniers jours)
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

Réponse acceptée

Walter Roberson
Walter Roberson le 3 Juin 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.
  1 commentaire
Andrew Alkiviades
Andrew Alkiviades le 3 Juin 2011
Thanks Walter
I have confused myself quite a bit (and with some basic maths)
do you have any suggestions on solving this issue?
thanks again

Connectez-vous pour commenter.

Plus de réponses (1)

Andrew Alkiviades
Andrew Alkiviades le 3 Juin 2011
Thanks Walter
I have confused myself quite a bit (and with some basic maths)
do you have any suggestions on solving this issue?
thanks again
  4 commentaires
Walter Roberson
Walter Roberson le 3 Juin 2011
I suspect so, removing the (1,:) etc.
Andrew Alkiviades
Andrew Alkiviades le 3 Juin 2011
Thanks, I have tried that... Next question :)
i cant seem to find this error anywhere online.
??? Undefined function or method 'isfinite' for input arguments of type 'cell'.
Error in ==> C:\Program Files\MATLAB\R2010b\toolbox\optim\optim\barrier.p>barrier at 24
Do you have any idea what this may be?
Possibly in calling fmincon? which has been done by
options = optimset('Display', 'iter', 'Algorithm','interior-point');
[x,fval,exitflag]=fmincon(@myobjective,x0,A,b,[],[],lb,[],@confun2, options)

Connectez-vous pour commenter.

Catégories

En savoir plus sur Systems of Nonlinear Equations dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by