Error on optimization problem, maximize log determinant on CVX

1k Views Asked by At

$A$ is an $N \times N$ complex matrix $W$ is an $N \times N$ complex matrix
$C$ is an $N \times N$ complex diagonal matrix
$u$ is a scalar
$V$ is an $N \times N$ complex matrix, whose diagonal elects are null
$P$ is a scalar

The problem is a data-rate maximization using a precoder $W$ to mitigate the crosstalk introduced by the real channel matrix $A$
Optimization Problem

Implementation:

cvx_begin
    variable W(N,N)
    variable u
    C = diag(diag(A*W))
    V = A*W - C

    maximize( log_det(C) )

    subject to  
        norm(W,'fro') <= u*sqrt(P)
        u^2 + (norm(V,'fro')^2)/N <= 1  
cvx_end

I'm getting the following errors:

CVX Warning: Models involving "log_det" or other functions in the log, exp, and entropy family are solved using an experimental successive approximation method. The method requires multiple calls to the solver, so it can be slow; and in certain cases it fails to converge. See Appendix D of the the user's guide for more information about this method, and for instructions on how to suppress this warning in the future. Error using cvx/geo_mean (line 111) Disciplined convex programming error: Invalid computation: geo_mean( {complex affine} )

Error in cvx/det_rootn (line 17) cvx_optval = geo_mean( diag( X ) );

Error in log_det (line 28) cvx_optval = size(X,1)*log(det_rootn(X));

Error in optimization_problem (line 58) maximize( log_det(C) )