【发布时间】:2019-07-06 11:06:57
【问题描述】:
我正在尝试使用
cipy.optimize.minimize 但到目前为止还没有成功。
具体来说,我想最小化y1 和y2 上的目标函数:
f(y1,y2)=(x1(y1,y2)-x1)^2+(x2(y1,y2)-x2)^2
受约束:
y1*y2>0
我们的目标是为不同的x1 和x2 对找到y1 和y2 的值。
这是我目前所拥有的
def f(x1,x2):
k=(x1(y1,y2)-x1)^2+(x2(y1,y2)-x2)^2
return k
但我不确定如何设置具有上述约束的函数:
def constraint(x):
....
一旦我有了约束,下面的语法是否正确?
optimize.minimize(f, np.array([0, 0]), method="SLSQP",
constraints={"fun": constraint, "type": "ineq"})
我是 Python 新手,因此我们将不胜感激。
【问题讨论】:
-
最小化文档here 专门处理向最小化问题添加线性/非线性约束,您是否尝试过使用内置的
constraint对象? -
您好,感谢您的留言。我尝试了几件事,但它们不起作用。问题是我不熟悉语法。如果您对我如何编写代码有任何想法,我将不胜感激。
-
我发布了约束部分的答案。我不明白你的功能,所以我举了一个例子。如果您可以更好地指定它,我可以更新答案。
标签: python python-3.x scipy mathematical-optimization