0

假设我需要最小化一个函数,但我想保持上面的结果0。也就是优化后的值应该是>= 0。我可以找到有关如何约束参数而不是返回值本身的内容。

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
4

1 回答 1

2

只需添加一个强制目标为 >= 0 的约束:

from scipy.optimize import minimize

def test(params):
    return params[0] + params[1]

# forces test(params) >= 0
con = [{"type" : "ineq", "fun" : test}]

minVal = minimize(test, x0=[0.01, 0.02], constraints=con)
于 2019-07-27T07:41:06.037 回答