# Mu\_target not working for ipopt

**URL:** https://discourse.julialang.org/t/mu-target-not-working-for-ipopt/19087
**Category:** Optimization (Mathematical)
**Created:** [December 29, 2018, 12:18pm UTC](https://discourse.julialang.org/t/mu-target-not-working-for-ipopt/19087 "2018-12-29T12:18:39Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![pedroborgesmelo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pedroborgesmelo/32/9459_2.png) [@pedroborgesmelo](https://discourse.julialang.org/u/pedroborgesmelo)
#### Post date: [December 29, 2018, 12:18pm UTC](https://discourse.julialang.org/t/mu-target-not-working-for-ipopt/19087/1 "2018-12-29T12:18:39Z")

</div>

Hello guys!

Previously, Ipopt was accepting my mu\_target option. With problems created in the standard manner you see on the internet. Now, it is not. The difference is that now for some specific reason I’m creating the problem like this:

JuMP.setNLobjective(m, :Min, :(my\_objective($(x…))))

Do you have a clue why Ipopt is not accepting my mu\_target?

Best,

---

<div class="post-metadata">

### Author: ![pedroborgesmelo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pedroborgesmelo/32/9459_2.png) [@pedroborgesmelo](https://discourse.julialang.org/u/pedroborgesmelo)
#### Post date: [December 29, 2018, 2:03pm UTC](https://discourse.julialang.org/t/mu-target-not-working-for-ipopt/19087/2 "2018-12-29T14:03:47Z")

</div>

Well,

It seems that if you register a multivariate function, as you cannot provide the hessian, ipopt cannot use mu\_target.

For me it is weird. Check the code below:

using JuMP  
using Ipopt

###############################################################

#=  
ipoptSolver = IpoptSolver(mu\_target = 1.0)  
m = Model(solver=ipoptSolver)  
@variable(m, x \>= 0)  
@NLobjective(m, :Min, x)  
solve(m)  
getvalue(x)  
=#

###############################################################

#=  
ipoptSolver = IpoptSolver(mu\_target = 1.0)  
m = Model(solver=ipoptSolver)  
@variable(m, x \>= 0)  
JuMP.register(m, :my\_objective, 1, (x) → x, (x) → 1.0, (x) → 0.0)  
JuMP.setNLobjective(m, :Min, :(my\_objective($(x…))))  
solve(m)  
getvalue(x)  
=#

###############################################################

#=  
function val(x1, x2)  
return x1 + x2  
end

function grad(result, x1, x2)  
result[1] = 1.0  
result[2] = 1.0  
end

ipoptSolver = IpoptSolver(mu\_target = 1.0)  
m = Model(solver=ipoptSolver)  
@variable(m, x[1:2] \>= 0)  
JuMP.register(m, :my\_objective, 2, val, grad, autodiff=false)  
JuMP.setNLobjective(m, :Min, :(my\_objective($(x…))))  
solve(m)  
getvalue(x)  
=#
