【问题标题】:Convex programming with CVXOPT or CVXPY使用 CVXOPT 或 CVXPY 进行凸编程
【发布时间】:2015-05-24 07:36:36
【问题描述】:
我需要在 Python 中使用 CVXOPT 或 CVXPY 解决优化问题,但我遇到了困难。目标函数是
Minimize Sum(a*x^2+b/x)
受以下限制
5 <= x < 40;
sum(v/d)<=T
其中向量x 是优化变量,向量a 和b 是给定的,T 是给定的标量。
【问题讨论】:
标签:
python
optimization
cvxopt
convex-optimization
cvxpy
【解决方案1】:
以下代码解决了 CVXPY 中的问题。我以为你的意思是sum(x/d) <= T。
# Replace these with your values.
n = 2
a = 2
b = 2
d = 2
T = 1000
import cvxpy as cvx
x = cvx.Variable(n)
obj = cvx.sum_entries(a*x**2 + b*cvx.inv_pos(x))
constr = [5 <= x,
x <= 40,
cvx.sum_entries(x/d) <= T]
prob = cvx.Problem(cvx.Minimize(obj), constr)
prob.solve()