2015-03-20 1 views
0

Мне нужно решить проблему оптимизации CVXOPT или CVXPY в Python, и у меня возникли трудности. Целевая функцияВыпуклое программирование с CVXOPT или CVXPY

Minimize Sum(a*x^2+b/x) 

с учетом следующих ограничений

5 <= x < 40; 

sum(v/d)<=T 

, где вектор x является переменной оптимизации, векторы a и b приведены, и T заданная скаляр.

ответ

2

Следующий код решает проблему в 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() 

 Смежные вопросы

  • Нет связанных вопросов^_^