Hi all,

I’m tackling the following nonconvex fractional quadratic optimization problem

where \boldsymbol{x}=[x_1,\dots,x_N]^T, \boldsymbol{a}_t = [a_{1t},\dots,a_{Nt}]^T\, \forall t \in \mathcal{T} and \boldsymbol{Q}_t \in \mathbb{R}_+^{N \times N} \, \forall t \in \mathcal{T} is a *stricly lower triangular* matrix.

After relaxing the binary constraint, my idea is to use the bisection method being the problem quasi-convex, i.e. I’d check the problem feasibility for smaller and smaller values of a constant z until the problem becomes infeasible. Below is one iteration of the method.

cvx_begin

variable x(N,1)

subject to

for t = 1:T

a_t = A_all(t,:)’;

Q_t = triu(reshape(Q_all(t,:,:),N,N));

a_t’*x <= z * x’*Q_t’*x;

end

0<=x<=1

cvx_end

Unfortunately, CVX returns the error “The second argument must be positive or negative semidefinite”, even though matrix \boldsymbol{Q}_t is positive semidefinite for all t. I also tested it by means of the MATLAB *eig* function, which gives N zero eigenvalues.

At first I thought it was some kind of numerical problem, so I scaled up the input data. Currently, \boldsymbol{Q}_t's are in the order of 10^3, while \boldsymbol{a}_t's are in the order of 10^2 and I wouldn’t expect it to be an issue for the solver.

Do you have any suggestions? Thank you.