Dear experts,

My procedure is written as follows:

+++++++++++++++++++++++

Pbd=10;

Dbd=10;

Ddr=15;

Ddc=12;

noise=0.0000000001*1000;
conversion=0.8;
h1=0.69;
h2=0.65;
h3=0.58;
Hbd=h1*Dbd^(-3);

Hdr=h2

*Ddr^(-3);*

Hdc=h3Ddc^(-3);

Hdc=h3

ps=0.4;

w1=1;

w2=0.2;

theta1=(conversion

*ps*Pbd

*Hbd*Hdc)/noise;

theta2=(conversion

*ps*Pbd

*Hbd*Hdr)/noise;

theta3=log2(1+((1-ps)

*Pbd*Hbd)/noise);

%%

cvx_startup;

cvx_begin

variables x y z r;

rdr=(1-2*z) log(1+ytheta2/(1-2*z));

rbd=z

*log(1+((1-ps)*

rdc=zlog(1+x*theta1/z);

*Pbd*Hbd)/noise);rdc=z

maximize (w1*r+w2*rdr);

subject to

x+y<=z;

r<=rbd;

r<=rdc;

x>0;

y>0;

z>0;

1-2*z>0;
cvx_end
++++++++++++++++
And the error is:
Setting CVX paths…done.
错误使用 .* (line 173)

Disciplined convex programming error:

Cannot perform the operation: {real affine} ./ {real affine}

出错 ./ (line 19)

z = times( x, y, ‘./’ );

出错 * (line 36)

z = feval( oper, x, y );

出错 / (line 15)

z = mtimes( x, y, ‘rdivide’ );

出错 shili4 (line 27)

rdr=(1-2*z) log(1+ytheta2/(1-2*z));

++++++++++++++++++

I have tested this procedure and “rbd=z*log(1+((1-ps) PbdHbd)/noise)" is right while "rdr=(1-2*z)

*log(1+y*theta2/(1-2

*z))" is wrong. I guess the problem exists in "y*theta2/(1-2*z)”. Could you please help me?