I am trying to solve following large-scale quadratic fractional (QF) problem: \begin{equation} \begin{aligned} \min_{x\in\Re^{n\times1}} &\frac{x^\top H x + f^\top x + C_e}{x^\top R x}\\ \text{s.t.} &~~Ax\leq b \end{aligned} \end{equation} where $H$ and $R$ are both positive definite matrics. $C_e$ is a positive scalar. $n$ is around 5000.
By letting $z^2:=\frac{1}{x^\top R x}$, the original QF problem can be transferred into a non-convex QCQP problem: \begin{equation} \begin{aligned} \min_{\theta\in\Re^{n+1}} &\theta^\top \tilde{H} \theta\\ \text{s.t.} &~~\theta^\top\tilde{R}\theta=1\\ &~~\tilde{A}\theta\leq \tilde{b}\\ &~~\sigma^{-1}_{\text{vwap}} \leq z \end{aligned} \end{equation} where $\theta:=[y^\top,z]^\top$, $y=xz$ and solve it using some non-convex solver i.e. IPOPT.
Alternatively, I could transform the non-convex QCQP problem into a semi-definite programming (SDP) problem, such that: \begin{equation} \begin{aligned} \min_{X} &~tr(\tilde{H} X)\\ \text{s.t.} &~~tr(\tilde{R}X)=1\\ &~~tr(\tilde{A}_iX)\leq \tilde{b}_i\\ &~~ X\succeq 0 \end{aligned} \end{equation} and solve it using some SDP solver, i.e. MOSEK. I firstly tried to use MOSEK to solve this $5000\times 5000$ SDP problem, but it seems very slow.
I then tried to use IPOPT (ver 3.12.9). By providing the Jacobian & Hessian informations and a feasible initial guess $x_0$, IPOPT could solve my problem very fast in most of the time. However, sometimes IPOPT iterations stucks for more than 10 mins! Because it keeps
"Reallocating memory for MA57: lfact"
I am wondering, is there any efficient and robust way to solve my optimization problem?