Julia中的非线性导数自由优化

时间:2017-05-24 13:42:41

标签: julia

我想用等式约束来解决非线性优化问题。

我希望参数是一个向量,并且想要衍生自由方法。

似乎NLsolve.jl使用:LD_SLSQP算法支持此类问题,但我无法编写正确的代码

也许,问题是grad,这应该是"空的"根据{{​​3}}

有人能告诉我编写代码的正确方法吗?

using NLopt

function f(x,grad)
    x1 = x[1]
    x2 = x[2]
    out= log(x1)+0.9*log(x2)
    return out
end

function const1(x,grad)
    out = Array{Float64}(2)
    out[1] = x[1]+x[2]-10.0
    out[2] = 0.0
    return out
end

opt = Opt(:LD_SLSQP, 2)

lower_bounds!(opt, [1e-8, 1e-8])
upper_bounds!(opt, [10.0, 10.0])

max_objective!(opt,f)

maxtime!(opt, 20)

equality_constraint!(opt,const1,[1e-8,1e-8])

1 个答案:

答案 0 :(得分:0)

谢谢Dan Gets,LD_SLSQP不是衍生品。

将算法更改为LN_COBYLA可以解决问题!