I am trying to solve a convex semi-definite optimization problem, and I don’t know what would be the right approach to implement it in Julia. The problem is the following:

min c'x

where c and x are vectors in R^n subject to

F(x) <= Y

where F(x) is a symmetric m * m matrix for any x, and Y is a fixed matrix. The main problem is that F is a highly non-linear convex function, and each evaluation requires a lot of computations which are not implemented in Julia (I have them in FreeFEM++). To solve the problem, each evaluation of F would require to run an external script.

Do you have any recommendations of where can I start? I was thinking of using Mosek and JuMP . . . but I don’t really know if it would be feasible to implement in Julia.

Thanks to both of you. Surely I shouldn’t use JuMP for this problem, and I will look into ImplicitDifferentiation.jl.

I will read about interior-point methods usually used for SDP problems, and see if I can take any ideas from there. Any recommendations?

On the other hand, I know for a fact that F is a decreasing function (x with the component-wise partial order and F(x) with the semi-definite one). Can I use this information somehow when implementing some method?