How to implement this problem on CVX?

Uncategorized
Feb 24, 2023
V

I am trying to solve the following optimisation problem in MATLAB CVX. I think it is Convex but I can’t think of a way to implement it.

min {x_i} -{\sum_{i=1}^{N} \log(1+h_i x_i)} - \frac{K}{\sum_{i=1}^{N}x_i^{-1}}
s.t. \sum_{i=1}^{N} x_i =< P
x_i>0, for all i in {1,…,N}

So far I had implemented the above expression in terms of diagonal matrices where the second term of the obj. function was represented with the harmonic mean function as follows:

K = constant;
A_diag is positive-real diagonal matrix

cvx_begin

variable x_diag(N,1)

min {x_diag} -log_det (I_N + A_diag diag(x_diag)) - K*harm_mean(x_diag)
s.t. \sum x_diag =< P
x_diag > 0, for all i in {1,…,N}

cvx_end

The two terms in the above implementation seem disjoint. Any suggestions on implementing this in the first format?

M

Harmonic mean can be implemented as shown in section 3.2.7 “Harmonic mean” of Mosek Modeling Cookbook , and using rotated_loretnz, for which there are example on this forum, for the rotated 2nd order cone.