gpt4 book ai didi

optimization - 如何在 JuMP + Julia 的目标函数中使用 abs 函数

转载 作者:行者123 更新时间:2023-12-03 16:13:47 26 4
gpt4 key购买 nike

我想用 JuMP 和 Julia 解决一个简单的线性优化问题。
这是我的代码:

using JuMP
using Mosek

model = Model(solver=MosekSolver())

@variable(model, 2.5 <= z1 <= 5.0)
@variable(model, -1.0 <= z2 <= 1.0)
@objective(model, Min, abs(z1+5.0) + abs(z2-3.0))

status = solve(model)
println("Objective value: ", getobjectivevalue(model))
println("z1:",getvalue(z1))
println("z2:",getvalue(z2))

但是,我收到此错误消息。
> ERROR: LoadError: MethodError: no method matching
> abs(::JuMP.GenericAffExpr{Float64,JuMP.Variable}) Closest candidates
> are: abs(!Matched::Bool) at bool.jl:77 abs(!Matched::Float16) at
> float.jl:512 abs(!Matched::Float32) at float.jl:513

如何在 JuMP 代码中使用 abs 函数?

最佳答案

@rickhg12hs 的 commnet 解决了我的问题。
如果我使用@NLobjective 而不是@objective,它会起作用。
这是最终的代码。

using JuMP
using Mosek

model = Model(solver=MosekSolver())

@variable(model, 2.5 <= z1 <= 5.0)
@variable(model, -1.0 <= z2 <= 1.0)
@NLobjective(model, Min, abs(z1+5.0) + abs(z2-3.0))

status = solve(model)
println("Objective value: ", getobjectivevalue(model))
println("z1:",getvalue(z1))
println("z2:",getvalue(z2))

关于optimization - 如何在 JuMP + Julia 的目标函数中使用 abs 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45395237/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com