Optimizing two vectors of different sizes

1 vue (au cours des 30 derniers jours)
Adam Rish
Adam Rish le 20 Mai 2021
Modifié(e) : Matt J le 24 Mai 2021
I am working to optimize the following problem:
r=optimvar('r',size(S,1),'LowerBound',0,'UpperBound',1);
B= optimvar ('B', size(dm,2));
p=prob2matrices({r, B},'Constraints', sum(r)<=1);
%Solving optimization problem
Roptimal=lsqlin([S', 1], dm(:), p.Aineq,p.bineq,[],[],p.lb,p.ub)
Where S is a n x m matrix, and dm is a m x 1 matrix. The result is that r (n x 1 natrix) and B (m x 1 matrix) are different sizes, and cannot be concatenated. The equation I am essential trying to solve is as follows:
%minimize "e2"
e= dm - (S'*r+B)
e2= e*e'
I recogonize I am probably not using an appropriate function. Any help would be greatly appreciated.
  2 commentaires
Nagasai Bharat
Nagasai Bharat le 24 Mai 2021
Hi,
From the equation (r' * S) would be a 1 x m matrix whereras B is a m x 1 matrix. Try to cross-check as a transpose of B would be needed to have an addition operation.
Adam Rish
Adam Rish le 24 Mai 2021
Modifié(e) : Adam Rish le 24 Mai 2021
So I adjusted my inputs, but am still getting the same error. Here is what I've written
r=optimvar('r',size(S,1),'LowerBound',0,'UpperBound',1);
p=prob2matrices({r},'Constraints', sum(r)<=1);
%Solving optimization problem
Roptimal=lsqlin([S', I], dm(:), p.Aineq,p.bineq,[],[],p.lb,p.ub)
So the equation I am trying to solve/minimize using lsqlin is the following:
S'*r+B-dm
Where I am trying to solve for r (n x 1 matrix) and B. S is still a n x m matrix, and dm is a 1 x m matrix. S'*r is therefore a m x 1 matrix. The problem is that I need B to be an m x 1 matrix but the requirement of multiplier I seems to prevent me from doing that

Connectez-vous pour commenter.

Réponse acceptée

Matt J
Matt J le 24 Mai 2021
Modifié(e) : Matt J le 24 Mai 2021
r=optimvar('r',n,'LowerBound',0,'UpperBound',1);
B= optimvar ('B', m);
[p,idx]=prob2matrices({r, B},'Constraints', sum(r)<=1);
C=nan(m,m+n);
C(:,idx.r)=S';
C(:,idx.B)=eye(m);
Roptimal=lsqlin(C, dm(:), p.Aineq,p.bineq,[],[],p.lb,p.ub);
sol=x2sol(Roptimal,idx), %solution

Plus de réponses (0)

Catégories

En savoir plus sur Multiobjective Optimization 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