【发布时间】:2019-02-10 20:48:50
【问题描述】:
我试图了解constraints 中的scipy 优化功能。我想在假设输入值始终为正的情况下最小化函数。所以我的约束函数定义如下:
def apply_constraint(inputs):
return inputs[0] - inputs[0]
如果我的所有输入都是负数会怎样?我尝试使用负输入,但无法理解结果。约束属性的真正含义是什么?它还会给出负值的结果。
这是我的完整代码。
from __future__ import division
import numpy as np
from scipy.optimize import minimize
def f(x):
Y = ((x + 100) / 100)
return Y[0]
def apply_constraint(inputs):
return inputs[0] - inputs[0]
my_constraints = ({'type': 'eq', "fun": apply_constraint})
min_result = minimize(f, [2], method="SLSQP", options={
'disp': False}, bounds=[(-2, 101)], constraints=my_constraints)
print("Minima found at: X = {}, Y = {}".format(min_result.x, min_result.fun))
【问题讨论】: