I have reformulated an optimization problem using fractional programming as above where fn+(.) is a concave increasing function, and fn-(.) is a concave decreasing function , but as the optimization variable x is inside the square root of the matrix, im getting the following error,

Error using sqrtm

Input must be a single or double matrix.

kindly help me resolve this. Below is the cvx snippet

cvx_begin

variable alpha1_MAT(size(M1*M1’)) hermitian semidefinite
expression C_MAT
expression D_MAT
expression R
expression P
expression Gamma_L
expression Y_MAT_tilde
expression Qn_eav
C_MAT=alpha1_MAT*Pt*(M1

*M1’);*

D_MAT=np_eaves(G2

D_MAT=np_eaves

*G2’)+ Pt*(M2

*M2’)-Pt*alpha1_MAT*(M2

*M2’);*

R=sqrtm(C_MAT);

P=sqrtm(D_MAT);

Gamma_L=alpha1_MATlambda;

R=sqrtm(C_MAT);

P=sqrtm(D_MAT);

Gamma_L=alpha1_MAT

Y_MAT_tilde=inv(C_MAT)

*P’;*

Qn_eav=(P’N)+inv(Qn_eav)))));

Qn_eav=(P’

*Y_MAT_tilde)+(Y_MAT_tilde’*(sum(log2(1 + Gamma_L)))+ log2(1/(det(eye(M*P)-(Y_MAT_tilde’*

maximize (1/(MN)*C_MAT*Y_MAT_tilde);maximize (1/(M

subject to

0 <= diag(alpha1_MAT) <= 1;

cvx_end;