python - 将常量和变量传递给 Scipy.minimize.optimize 约束和边界
问题描述
我发现如何可以传入*args
main 函数scipy.minimize.optimize
,请参阅这个问题。
但是如何将常量和变量传递给约束和边界呢?
P
是变量向量,P0
是初始解向量,f(P)
是要最小化的函数,其余都是常数数据。它会这样工作吗?
def constraint_1(P, args):
M_goal, other_args = args
M = calc_M_from_P(P, args) # calculate M from P
return M-M_goal
# boundary is simply (P0[i]-500, P0[i]+500)
def get_boundaries(P0):
list_bnds = []
for i in range(len(P0)):
list_bnds.append((P0[i]-500.0, P0[i]+500.0))
return tuple(list_bnds)
func = objective(P0, args)
bnds = get_boundaries(P0)
con1 = {'type': 'ineq', 'fun': constraint_1}
sol = minimize(func, P0, args = args, method='SLSQP', bound=bnds, constraints = con1)
解决方案
推荐阅读
- javascript - 将文件作为 $http.post 响应返回
- javascript - 通过ajax发布巨大的字符串到spring控制器
- python - Azure Batch 数据科学 VM python 包丢失
- android-fragments - Activity 独立加载,但不在 Fragment 中
- jquery - jQuery自动完成特定的keyup问题
- javascript - 如何在 jquery 转发器中为输入的日期类型设置默认值?
- python - 按过去 7 周的日期选择数据集记录
- asp.net - 在类库项目中访问 appsettings.json(在 WepApi-project 中)
- ansible - 如何根据条件打破 with_items 循环
- python-3.x - 不和谐机器人的语法无效(python)