约束优化

问题描述 投票:0回答:1

我需要编写一个约束优化器。我正在尝试最小化函数sub,该函数接受变量。 是需要满足约束0 <= <= 1的n矢量。下面是到目前为止的内容。我收到错误“ LSQ子问题中的奇异矩阵C”,这使我认为我没有正确定义约束函数。我只知道COBYLA支持不平等约束的方法,但我不知道如何以这种形式编写它。我已经为方法SLSQP使用了“ eq”。请帮助我!def inequality(rho): return np.sum(np.logical_or((rho < 0), (rho > 1))) cons = [{'type':'eq', 'fun': inequality}] def opt2(sub): res2 = minimize(sub, rho(9), method='SLSQP', jac=gradient_ext, constraints=cons) return res2 optimize2 = opt2(subroutine_ext) print(optimize2) 我需要编写一个约束优化器。我正在尝试最小化将变量rho占用的子函数。 Rho是一个n矢量,需要满足约束0 <= rho <=1。下面...

无论如何,在不了解函数sub及其雅可比性的情况下,很难提供适当的帮助,因此在您的情况下无需使用任何约束。提供minimize的变量范围就足够了。假设rho是一个numpy数组:
bnds = [(0,1) for _ in range(len(rho))] def opt2(sub): res2 = minimize(sub, x0=your_starting_point, bounds=bnds, jac=gradient_ext) return res2 optimize2 = opt2(subroutine_ext) print(optimize2)
python scipy minimize
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.