julia> using Optim julia> f(x) = (1.0 - x[1])^2 + 100.0 * (x[2] - x[1]^2)^2 f (generic function with 1 method) julia> lower = [1.25, -2.1] 2-element Array{Float64,1}: 1.25 -2.1 julia> upper = [Inf, Inf] 2-element Array{Float64,1}: Inf Inf julia> initial_x = [2.0, 2.0] 2-element Array{Float64,1}: 2.0 2.0 julia> inner_optimizer = GradientDescent() GradientDescent{LineSearches.InitialPrevious{Float64},LineSearches.HagerZhang{Float64,Base.RefValue{Bool}},Nothing,getfield(Optim, Symbol("##12#14"))}(LineSearches.InitialPrevious{Float64} alpha: Float64 1.0 alphamin: Float64 0.0 alphamax: Float64 Inf , LineSearches.HagerZhang{Float64,Base.RefValue{Bool}} delta: Float64 0.1 sigma: Float64 0.9 alphamax: Float64 Inf rho: Float64 5.0 epsilon: Float64 1.0e-6 gamma: Float64 0.66 linesearchmax: Int64 50 psi3: Float64 0.1 display: Int64 0 mayterminate: Base.RefValue{Bool} , nothing, getfield(Optim, Symbol("##12#14"))(), Flat()) julia> results = optimize(f, lower, upper, initial_x, Fminbox(inner_optimizer)) Results of Optimization Algorithm * Algorithm: Fminbox with Gradient Descent * Starting Point: [2.0,2.0] * Minimizer: [1.2500000000000002,1.5626480963230658] * Minimum: 6.250219e-02 * Iterations: 11 * Convergence: true * |x - x'| ≤ 0.0e+00: false |x - x'| = 2.22e-16 * |f(x) - f(x')| ≤ 0.0e+00 |f(x)|: true |f(x) - f(x')| = 0.00e+00 |f(x)| * |g(x)| ≤ 1.0e-08: false |g(x)| = 4.26e-01 * Stopped by an increasing objective: false * Reached Maximum Number of Iterations: false * Objective Calls: 818877 * Gradient Calls: 818877