【问题标题】:How to restrict minimized value to be above a specific value?如何将最小值限制为高于特定值?
【发布时间】:2021-08-09 16:03:06
【问题描述】:

假设我有这段代码:

def test(params, *args):
    return params[0] + params[1]
minVal = minimize(test, [0.01, 0.02]) # I want minVal to be lowest non-negative value

有了这样的约束,我可以将结果限制在 0 以上:

# forces test(params) >= 0
con = [{"type" : "ineq", "fun" : test}]
minVal = minimize(test, x0=[0.01, 0.02], constraints=con)

但是如果我希望值大于 4 怎么办?可以指定吗?

【问题讨论】:

    标签: python scipy minimization


    【解决方案1】:

    是的,这是可能的。只需将您的 test 函数定义为:

    def test(params, *args):
        return params[0] + params[1] - 4
    

    或者,如果您不想更改 test 函数,请定义:

    con = [{"type" : "ineq", "fun" : lambda x: test(x)-4}]
    minVal = minimize(test, x0=[0.01, 0.02], constraints=con)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-26
      • 1970-01-01
      • 2016-01-18
      • 2020-03-15
      • 1970-01-01
      • 2018-12-29
      • 1970-01-01
      相关资源
      最近更新 更多