# Unable to transform a quadratic constraint into a second-order cone constraint because the quadratic constraint is not strongly convex

**URL:** https://discourse.julialang.org/t/unable-to-transform-a-quadratic-constraint-into-a-second-order-cone-constraint-because-the-quadratic-constraint-is-not-strongly-convex/79767
**Category:** Optimization (Mathematical)
**Created:** [April 21, 2022, 7:50am UTC](https://discourse.julialang.org/t/unable-to-transform-a-quadratic-constraint-into-a-second-order-cone-constraint-because-the-quadratic-constraint-is-not-strongly-convex/79767 "2022-04-21T07:50:46Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![Eric.O](https://avatars.discourse-cdn.com/v4/letter/e/9dc877/32.png) [@Eric.O](https://discourse.julialang.org/u/Eric.O)
#### Post date: [April 21, 2022, 7:50am UTC](https://discourse.julialang.org/t/unable-to-transform-a-quadratic-constraint-into-a-second-order-cone-constraint-because-the-quadratic-constraint-is-not-strongly-convex/79767/1 "2022-04-21T07:50:46Z")

</div>

I am using Mosek solver to solve the model below. I get the model showing but the solver is not able to display the results. Am guessing is an issue with the second order cone formulation. I will appreciate your guidance to get this working please.

using JuMP  
using Mosek  
using MosekTools  
model= Model(Mosek.Optimizer)

# Let parameter

m=15  
NumVar=5  
r=[0, 0, 0, 0, 0]  
@variable(model, X\>=0)  
@variable(model, y\>=0)  
@variable(model, z\>=0)  
@variable(model, a[i=1:NumVar]\>=0)  
@variable(model, b[i=1:NumVar]\>=0)  
@variable(model, R\>=0)

###### 

@objective(model, Min, X^2 + y^2-z )

#######Declare the constraints  
for i in 1:NumVar  
@constraint(model, -2_X_a[i]-2\*b[i]\*y + z \<=(R-r[i])^2-a[i]^2-b[i]^2)  
end

@show model  
print(model)  
optimize!(model)  
@show termination\_status(model)  
@show primal\_status(model)  
@show dual\_status(model)  
@show objective\_value(model)  
for i in 1:NumVar  
println("r[$i] = ", value(r[i]))  
end  
@show value(X)  
@show value(y)  
@show value(R)

---

<div class="post-metadata">

### Author: ![odow](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/odow/32/28685_2.png) [@odow](https://discourse.julialang.org/u/odow)
#### Post date: [April 21, 2022, 8:18am UTC](https://discourse.julialang.org/t/unable-to-transform-a-quadratic-constraint-into-a-second-order-cone-constraint-because-the-quadratic-constraint-is-not-strongly-convex/79767/2 "2022-04-21T08:18:33Z")

</div>

Mosek is a conic solver, so it requires that your problem formulation is convex. Your problem is non-convex because it has bilinear terms. like `X * a[i]`.

If you expected your problem to be convex, you should take another look at the formulation. Otherwise you could try a solver like Ipopt that can find locally optimal solutions to non-convex problems, or Gurobi, which can solve this problem to global optimality.

---

<div class="post-metadata">

### Author: ![Eric.O](https://avatars.discourse-cdn.com/v4/letter/e/9dc877/32.png) [@Eric.O](https://discourse.julialang.org/u/Eric.O)
#### Post date: [April 21, 2022, 8:46am UTC](https://discourse.julialang.org/t/unable-to-transform-a-quadratic-constraint-into-a-second-order-cone-constraint-because-the-quadratic-constraint-is-not-strongly-convex/79767/3 "2022-04-21T08:46:53Z")

</div>

Is there a way I can reformulate my non convex model to be convex or unless I get a solver that can solve non covex problem like you said earlier.

Do I need a license before using Gurobi?

---

<div class="post-metadata">

### Author: ![odow](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/odow/32/28685_2.png) [@odow](https://discourse.julialang.org/u/odow)
#### Post date: [April 21, 2022, 9:04am UTC](https://discourse.julialang.org/t/unable-to-transform-a-quadratic-constraint-into-a-second-order-cone-constraint-because-the-quadratic-constraint-is-not-strongly-convex/79767/4 "2022-04-21T09:04:30Z")

</div>

No, you typically can’t reformulate nonconvex problems to be convex

And yes, Gurobi is commercial, but they have free licenses for academics.

---

<div class="post-metadata">

### Author: ![Eric.O](https://avatars.discourse-cdn.com/v4/letter/e/9dc877/32.png) [@Eric.O](https://discourse.julialang.org/u/Eric.O)
#### Post date: [April 21, 2022, 1:13pm UTC](https://discourse.julialang.org/t/unable-to-transform-a-quadratic-constraint-into-a-second-order-cone-constraint-because-the-quadratic-constraint-is-not-strongly-convex/79767/5 "2022-04-21T13:13:38Z")

</div>

Thank you very much
