How to write following objective in matlab using CVX?


(Radhika Gour) #1


(Mark L. Stone) #2

Read section 4.3.2 “Linear-fractional programming” of http://web.stanford.edu/~boyd/cvxbook/ .


(Radhika Gour) #3

Thank you but can’t i write directly as:
B1=[b0 B]’;
I=eye(3);
cvx_begin quiet
cvx_solver sedumi
variable pow(3,1)
maximize G_0Tpow. * inv_pos(((G_0cTpow)+noise))
subject to
(I-F)*pow>=B1;
pow >= 0;
pow<=Pmax;
cvx_end


(Mark L. Stone) #4

That would violate CVX’s rules. Hence, follow the approach in the link I provided.


(Radhika Gour) #5

I solved the problem using CVX by following the given link. Thank you.


(Michael C. Grant) #6

Thanks @Mark_L_Stone. I still went ahead and marked this as non-convex because, well, it is. And @Radhika, please read the FAQ to understand why CVX cannot accept the problem as you wrote it.


(Radhika Gour) #7

Using linear transformation i wrote the code:
I=eye(size(F,1));
cvx_begin
cvx_solver
variable W(size(F,1),1)
variable V(1,1)
maximize G_0TW
subject to
(I-F)W-B>=0;
W-Pmax<=0;
W>=0;
G_0cT
W+noise
V==1;
V>=0;
cvx_end

Where F is a square matrix and G_0T is row vector and G_0cT is also a row vector , B is a column vector, Pmax is a column vectoroutput of CVX is:


why this is so?


(Michael Tarerefa) #8

Hi @Radhika, did you manage to find a fix for your problem?