【问题标题】:How to build x[0] + x[1] > 0 constraint in scipy.optimize.minimize?如何在 scipy.optimize.minimize 中构建 x[0] + x[1] > 0 约束?
【发布时间】:2019-06-30 12:00:09
【问题描述】:

我正在尝试建立正确的约束来最小化目标函数:

fun_SV = lambda x : objective(value_date_2, datos_2,curve,'Svensson',curve_rates,fechas_tenors,x)

我有一个参数列表x,我只想要一个约束,其中第一个和第二个参数的总和大于 0 我正在尝试这个:

cons = {'type':ineq, 'fun': lambda x: x[0] + x [1]} 

然后,我最小化:

bounds_sv = ((0,15),(-15,30),(-30,30),(-30,30),(0.000000001,30)(0.000000001,30))

res_SV = minimize(fun_SV, x0,method="SLSQP", bounds= bounds_sv, constraints = my_constraints, tol=0.000001,options={'maxiter':50000})

我得到的是两者的总和都是0,我只想要x[0] + x[1] > 1

【问题讨论】:

标签: python scipy constraints minimize


【解决方案1】:

SLSQP 具有 f(x)>=0 形式的不等式。所以如果你想要g(x)>1,你必须使用:f(x)-1.0001>=0。在你的情况下:

 cons = {'type':ineq, 'fun': lambda x: x[0] + x [1] - 1.0001 } 

【讨论】:

    猜你喜欢
    • 2017-01-19
    • 1970-01-01
    • 2019-12-28
    • 1970-01-01
    • 2023-04-08
    • 2022-03-29
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    相关资源
    最近更新 更多