0
我想用等式約束來解決非線性優化問題。Julia中的非線性微分免費優化
我想參數是一個向量,並希望派生自由的方法。
似乎NLsolve.jl
使用:LD_SLSQP
的算法支持這樣的問題,但我不能寫正確的代碼
也許,問題是grad
,這應該是「空」根據
任何人都可以告訴我寫代碼的正確方法?
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])
'LD_SLSQP'方法不是無梯度方法。你可能意思是'LN_PRAXIS'。不知道它如何處理平等約束。 –