如何限制优化值大于0
How to restrict optimized value to be greater than 0
假设我需要最小化一个函数,但我想将结果保持在 0
以上。即优化值应该是>= 0
。我可以找到关于如何约束参数的内容,但不能找到 return 值本身。
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
只需添加一个强制 objective 为 >= 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)
假设我需要最小化一个函数,但我想将结果保持在 0
以上。即优化值应该是>= 0
。我可以找到关于如何约束参数的内容,但不能找到 return 值本身。
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
只需添加一个强制 objective 为 >= 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)