JuMP: defining objective function uses matrix multiplication

I do not know Python so many things are not clear to me in your example, from where comes U? Are I variables? (I am not sure of what comes from a .mat file.) If I am not wrong Ipopt supports arbitrary functions so you could code a function that does the same your objective function in python does and pass it to Ipopt by JuMP. I think this post summarises some of the difficulties of working with non-linear objectives in Ipopt.