Writing Minimization Function to Find Multiple Vectors

I am currently try to write an objective function to solve the following problem:
E= True - R1' *S1 - R2' *S2 - R3' *S3
where the goal is to minimize E, and R1, R2, and R3 are all vectors, and S1 is a matrix that has as many rows as R1 has rows (and so on for S2 and S3). I am trying to solve for R1, R2, and R3, but am unsure what the correct function to use is. Additionally, I need to place restraints on R1. I have both the Optimization and Global Optimization toolbox available.
I'm new to the optimization coding, so any help is greatly appreciated. Thank you in advance

댓글 수: 4

Matt J
Matt J 2021년 4월 12일
편집: Matt J 2021년 4월 12일
If the S_i are matrices (not vectors) that means that E is vector-valued, not scalar-valued? If so, what does it mean to "minimize" it?
Apologies, I should've specified more. I am minimizing (E*E'), which gives a scalar value.
And what is the form of the constraints on the R_i?
The constraints are as follows: 0< R_i <1 And sum of R1=1

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

 채택된 답변

Matt J
Matt J 2021년 4월 12일

0 개 추천

lsqlin is appropriate for this problem,

댓글 수: 2

Matt J
Matt J 2021년 4월 12일
편집: Matt J 2021년 4월 12일
You may find prob2matrices(Download) helpful for setting some of this up,
R1=optimvar('R1',size(S1,2),'LowerBound',0,'UpperBound',1);
R2=optimvar('R2',size(S2,2),'LowerBound',0,'UpperBound',1);
R3=optimvar('R3',size(S3,2),'LowerBound',0,'UpperBound',1);
p=prob2matrices({R1,R2,R3},'Constraints', sum(R1)<=1);
Roptimal=lsqlin([S1,S2,S3],True(:), p.Aineq,p.bineq,[],[],p.lb,p.ub);
Thank you for your advice, this was immensly helpful!

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

추가 답변 (0개)

질문:

2021년 4월 12일

댓글:

2021년 4월 13일

Community Treasure Hunt

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

Start Hunting!

Translated by