How do I solve this quadratic problem?

I want to solve this problem:
min_phi phi’*Gamma*phi - 2*real(gamma’*phi)
s.t. norm( 2*phi-ones(N,1) , Inf ) <= 1;
Xi*phi == ones(M,1);
phi’*Q*phi <= power;
where phi is a vector of N \times 1, Gamma and Q are positive semi-definite, Gamma is singular, and Q is of full-rank.

The problems are listed as follows:

  1. I have transformed the objective function and the power constraint into norm form:
    minimize ( norm( sqrt_Gamma*phi - new_gamma ) )
    and
    norm( sqrt_Q*phi ) <= sqrt(power)
    However, I still wonder if there’s any other better way to recast a quadratic function?

  2. As mentioned before, Gamma is not a full-rank matrix. When I transform the objective function into the norm form, I have to calculate inv(Gamma^(1/2)). Is there a way to avoid the inverse operation?

  3. I am currently using Mosek, does Mosek fit this kind of problem?

Typically you would use the Cholesky factorization. If Gamma is of low rank then maybe it comes from some other construction and you can exploit that to get the factorization.

Or just use quad_form and let it do its thing without factorizing yourself.

If CVX accepts the problem then so does MOSEK.