Optimizing two vectors of different sizes

조회 수: 1 (최근 30일)
Adam Rish
Adam Rish 2021년 5월 20일
편집: Matt J 2021년 5월 24일
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
Nagasai Bharat
Nagasai Bharat 2021년 5월 24일
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 2021년 5월 24일
편집: Adam Rish 2021년 5월 24일
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

댓글을 달려면 로그인하십시오.

채택된 답변

Matt J
Matt J 2021년 5월 24일
편집: Matt J 2021년 5월 24일
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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Multiobjective Optimization에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by