工具包:Cvxoptpython 凸优化包
函数原型:Cvxopt.solvers.qp(P,q,G,h,A,b)
P,q,G,h,A,b的含义参见上面的二次规划问题标准形式。
编程求解思路:
1.对于一个给定的二次规划问题,先转换为标准形式(参见数学基础中所讲的二次型二中形式转换)
2.对照标准形势,构建出矩阵P,q,G,h,A,b
3.调用result=Cvxopt.solvers.qp(P,q,G,h,A,b)求解
4.print(result)查看结果,其中result是一个字典,我们可直接获得其某个属性,e.g. print(result['x'])
下面我们来看一个例子:
文章图片
import pprint
from cvxopt import matrix, solvers
P = matrix([[4.0,1.0],[1.0,2.0]])
q = matrix([1.0,1.0])
G = matrix([[-1.0,0.0],[0.0,-1.0]])
h = matrix([0.0,0.0])
A = matrix([1.0,1.0],(1,2))#原型为cvxopt.matrix(array,dims),等价于A = matrix([[1.0],[1.0]])
b = matrix([1.0])
result = solvers.qp(P,q,G,h,A,b)
print('x\n',result['x'])
【Python|数学建模之(二次规划模型Python代码)】
推荐阅读
- 【InventWithPython 第一部分】校对活动正式启动
- python|python程序向企业微信机器人发送消息
- 个人免签约收款系统|微信支付宝个人免签约收款系统的实现
- DeepLearning学习|(pytorch-深度学习)使用pytorch框架nn.RNN实现循环神经网络
- 数据分析|数据探索与数据预处理的实验报告
- Python学习笔记|【Python数据分析】数据探索+ 数据预处理
- Python|利用Python进行数据预处理
- Python数据分析与挖掘实战|【数据分析系列】Python数据预处理总结篇
- PyTorch|语义分割基础知识