The best way to code this optimization problem

조회 수: 1 (최근 30일)
mohamed Faraj
mohamed Faraj 2019년 11월 13일
편집: Matt J 2019년 11월 14일
I have a large optimization problem (a small part of this problem is given below)
max
s.t
Note that I have equality constraints
I need to code this in Matlab in an eficient way for a large-scale problem
  댓글 수: 2
Hank
Hank 2019년 11월 13일
Can you share what you've tried?
mohamed Faraj
mohamed Faraj 2019년 11월 14일
I have not coded it yet. I just need a general advice on how to code it. Should I make a mapping from (b,l,n) to a one index variable r_k for example. For example, r_k, k=1,2,......24 or I better use the indexes (b,l,n). I prefer to use the three indexes as my problem is large and it is easier to track if I use the three indexes (b,l,n)

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

답변 (2개)

Matt J
Matt J 2019년 11월 14일
편집: Matt J 2019년 11월 14일
It should be very straightforward using the problem-based solvers in the Optimization Toolbox,

Matt J
Matt J 2019년 11월 14일
편집: Matt J 2019년 11월 14일
I have matlab 2013b
Because the array sizes are fairly small here, the easiest thing might be to use my func2mat submission to express all your summations as matrix multiplications.
For example, a summation of a 4x1x12x12 array along its 3rd dimension can be represented by a matrix A obtained as follows,
z0=rand(4,1,12,12);
A=func2mat(@(z)sum(z,3) , z0);
To convince yourself of the equivalence, you can do
calc1=sum(z0,3);
calc2=A*z0(:);
>> norm(calc2(:)-calc1(:))
ans =
0

카테고리

Help CenterFile Exchange에서 Linear Least Squares에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by