-
-
Notifications
You must be signed in to change notification settings - Fork 100
Open
Description
using OptimizationOptimJL, Optimization
using Enzyme
x0 = zeros(2)
rosenbrock(x, p = nothing) = (1 - x[1])^2 + 100 * (x[2] - x[1]^2)^2
l1 = rosenbrock(x0)
function g!(G, x, p = nothing)
G[1] = -2.0 * (1.0 - x[1]) - 400.0 * (x[2] - x[1]^2) * x[1]
G[2] = 200.0 * (x[2] - x[1]^2)
end
function h!(H, x, p = nothing)
H[1, 1] = 2.0 - 400.0 * x[2] + 1200.0 * x[1]^2
H[1, 2] = -400.0 * x[1]
H[2, 1] = -400.0 * x[1]
H[2, 2] = 200.0
end
optf = OptimizationFunction(rosenbrock, AutoEnzyme())
prob = OptimizationProblem(optf, x0)
sol = solve(prob, Optim.KrylovTrustRegion())
ERROR: AssertionError: state.m_diff <= 0
Stacktrace:
[1] update_state!(objective::NLSolversBase.TwiceDifferentiableHV{…}, state::Optim.KrylovTrustRegionState{…}, method::Optim.KrylovTrustRegion{…})
@ Optim ~/.julia/packages/Optim/7krni/src/multivariate/solvers/second_order/krylov_trust_region.jl:165
[2] optimize(d::NLSolversBase.TwiceDifferentiableHV{…}, initial_x::Vector{…}, method::Optim.KrylovTrustRegion{…}, options::Optim.Options{…}, state::Optim.KrylovTrustRegionState{…})
@ Optim ~/.julia/packages/Optim/7krni/src/multivariate/optimize/optimize.jl:65
[3] optimize(d::NLSolversBase.TwiceDifferentiableHV{…}, initial_x::Vector{…}, method::Optim.KrylovTrustRegion{…}, options::Optim.Options{…})
@ Optim ~/.julia/packages/Optim/7krni/src/multivariate/optimize/optimize.jl:43
[4] __solve(cache::OptimizationCache{…})
@ OptimizationOptimJL ~/.julia/packages/OptimizationOptimJL/pBz1T/src/OptimizationOptimJL.jl:227
[5] solve!(cache::OptimizationCache{…})
@ SciMLBase ~/.julia/packages/SciMLBase/YE7xF/src/solve.jl:234
[6] solve(::OptimizationProblem{…}, ::Optim.KrylovTrustRegion{…}; kwargs::@Kwargs{})
@ SciMLBase ~/.julia/packages/SciMLBase/YE7xF/src/solve.jl:131
[7] solve(::OptimizationProblem{…}, ::Optim.KrylovTrustRegion{…})
@ SciMLBase ~/.julia/packages/SciMLBase/YE7xF/src/solve.jl:128
[8] top-level scope
@ ~/Desktop/test.jl:57
Some type information was truncated. Use `show(err)` to see complete types.
Metadata
Metadata
Assignees
Labels
No labels