数值计算·第七集:二次规划(CVXPY版)

Quadratic program(二次规划

标准形式:-A quadratic program is an optimization problem with a quadratic objective and affine equality and inequality constraints.

import numpy as np
import cvxpy as cp

#problem data
m,n = 15,10
p = 5

np.random.seed(1)
P = np.random.randn(n,n)

P = P.T@P
q = np.random.randn(n)
G = np.random.randn(m,n)
h = G@np.random.randn(n)
A = np.random.randn(p,n)
b = np.random.randn(p)
#@:n*n matrix

#problem variable
x = cp.Variable(n)

#constraints
constraints = [G@x<=h, A@x==b]

#objective
objective = cp.Minimize(0.5*cp.quad_form(x,P)+q.T@x)#x.T@A@x

#construct the problem 
prob = cp.Problem(objective,constraints)

#sovle
prob.solve(solver = cp.OSQP,verbose = True)

#expression
print('x = %s'%x.value)
print('Min-value:%s'%prob.value)

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值