Hi, everyone, here I encounter a maximization problem, the function log(1+x/(A+Bx)) I believe is concave. But it is hard to write a expression based on the DCP rules for me. I tried many build-in functions.

Anyone help me out? Thanks a lot.

%%

n = 16; %

% g = eye(n)*randn(n,n); %
Hn=1;
A=1*10^-1; %

B=1

*10^-1; %*

Pnoise=abs(rand(n,1)/5); %

SNR=Hn./Pnoise; %

g=diag(SNR);

Ptx = 1; % Power budget

C = ones(1,n);

cvx_begin

variable p(n)

maximize( sum(log((Pnoise’+Bp’+p’)./(Pnoise’+B

Pnoise=abs(rand(n,1)/5); %

SNR=Hn./Pnoise; %

g=diag(SNR);

Ptx = 1; % Power budget

C = ones(1,n);

cvx_begin

variable p(n)

maximize( sum(log((Pnoise’+B

*p’))))*

% maximize( sum(log(Pnoise’+Bp’+p’)+log(1./(Pnoise’+B

% maximize( sum(log(Pnoise’+B

*p’))))*

Cp == Ptx

C

p>=0

cvx_end