Py之cvxopt:cvxopt库的简介、安装、使用方法之详细攻略

简介: Py之cvxopt:cvxopt库的简介、安装、使用方法之详细攻略

 

目录

cvxopt库的简介

cvxopt库的安装

cvxopt库的使用方法

1、创建矩阵

2、求解线性规划


 

 

 

cvxopt库的简介

      CVXOPT是一个基于Python编程语言的凸优化的免费软件包。它可以与交互式Python解释器一起使用,也可以通过执行Python脚本在命令行上使用,或者通过Python扩展模块集成到其他软件中。它的主要目的是通过构建Python的广泛标准库和Python作为一种高级编程语言的优势,使凸优化应用程序的软件开发变得简单。

官网http://cvxopt.org/

 

 

cvxopt库的安装

pip install cvxopt

 

 

 

cvxopt库的使用方法

1、创建矩阵

CVXOPT有单独的稠密和稀疏矩阵对象。这个例子演示了创建密集和稀疏矩阵的不同方法。使用matrix()函数创建一个密集矩阵;它可以通过列表(或迭代器)创建:

1. >>> from cvxopt import matrix
2. >>> A = matrix([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], (2,3))
3. >>> print(A)
4. [ 1.00e+00  3.00e+00  5.00e+00]
5. [ 2.00e+00  4.00e+00  6.00e+00]
6. >>> A.size
7. (2, 3)
8. 
9. >>> B = matrix([ [1.0, 2.0], [3.0, 4.0] ])
10. >>> print(B)
11. [ 1.00e+00  3.00e+00]
12. [ 2.00e+00  4.00e+00]
13. 
14. 
15. >>> print(matrix([ [A] ,[B] ]))
16. [ 1.00e+00  3.00e+00  5.00e+00  1.00e+00  3.00e+00]
17. [ 2.00e+00  4.00e+00  6.00e+00  2.00e+00  4.00e+00]
18. 
19. 
20. >>> from cvxopt import spmatrix
21. >>> D = spmatrix([1., 2.], [0, 1], [0, 1], (4,2))
22. >>> print(D)
23. [ 1.00e+00     0    ]
24. [    0      2.00e+00]
25. [    0         0    ]
26. [    0         0    ]
27. >>> print(matrix(D))
28. [ 1.00e+00  0.00e+00]
29. [ 0.00e+00  2.00e+00]
30. [ 0.00e+00  0.00e+00]
31. [ 0.00e+00  0.00e+00]
32.

 

2、求解线性规划

可以通过求解器.lp()函数指定线性程序

1. >>> from cvxopt import matrix, solvers
2. >>> A = matrix([ [-1.0, -1.0, 0.0, 1.0], [1.0, -1.0, -1.0, -2.0] ])
3. >>> b = matrix([ 1.0, -2.0, 0.0, 4.0 ])
4. >>> c = matrix([ 2.0, 1.0 ])
5. >>> sol=solvers.lp(c,A,b)
6.      pcost       dcost       gap    pres   dres   k/t
7. 0:  2.6471e+00 -7.0588e-01  2e+01  8e-01  2e+00  1e+00
8. 1:  3.0726e+00  2.8437e+00  1e+00  1e-01  2e-01  3e-01
9. 2:  2.4891e+00  2.4808e+00  1e-01  1e-02  2e-02  5e-02
10. 3:  2.4999e+00  2.4998e+00  1e-03  1e-04  2e-04  5e-04
11. 4:  2.5000e+00  2.5000e+00  1e-05  1e-06  2e-06  5e-06
12. 5:  2.5000e+00  2.5000e+00  1e-07  1e-08  2e-08  5e-08
13. >>> print(sol['x'])
14. [ 5.00e-01]
15. [ 1.50e+00]


相关文章
|
JavaScript 前端开发 数据可视化
Py之mpld3:mpld3的简介、安装、使用方法之详细攻略
Py之mpld3:mpld3的简介、安装、使用方法之详细攻略
Py之mpld3:mpld3的简介、安装、使用方法之详细攻略
|
机器学习/深度学习 Python
Py之lime:lime库的简介、安装、使用方法之详细攻略
Py之lime:lime库的简介、安装、使用方法之详细攻略
Py之lime:lime库的简介、安装、使用方法之详细攻略
|
JSON 数据格式 Python
Py之simplejson:simplejson库的简介、安装、使用方法之详细攻略
Py之simplejson:simplejson库的简介、安装、使用方法之详细攻略
Py之simplejson:simplejson库的简介、安装、使用方法之详细攻略
|
人工智能 PyTorch 测试技术
Py之fvcore:fvcore库的简介、安装、使用方法之详细攻略
Py之fvcore:fvcore库的简介、安装、使用方法之详细攻略
Py之fvcore:fvcore库的简介、安装、使用方法之详细攻略
|
Linux Python Windows
Py之terminaltables:terminaltables的简介、安装、使用方法之详细攻略
Py之terminaltables:terminaltables的简介、安装、使用方法之详细攻略
Py之terminaltables:terminaltables的简介、安装、使用方法之详细攻略
|
JavaScript 前端开发 Python
Py之easydict:easydict的简介、安装、使用方法之详细攻略
Py之easydict:easydict的简介、安装、使用方法之详细攻略
Py之easydict:easydict的简介、安装、使用方法之详细攻略
|
Unix Linux API
Py之portalocker:portalocker的简介、安装、使用方法之详细攻略
Py之portalocker:portalocker的简介、安装、使用方法之详细攻略
Py之portalocker:portalocker的简介、安装、使用方法之详细攻略
|
存储 程序员 Python
Py之configobj:configobj的简介、安装、使用方法之详细攻略
Py之configobj:configobj的简介、安装、使用方法之详细攻略
Py之configobj:configobj的简介、安装、使用方法之详细攻略
|
数据采集 算法 数据可视化
Py之Optbinning:Optbinning的简介、安装、使用方法之详细攻略
Py之Optbinning:Optbinning的简介、安装、使用方法之详细攻略
Py之Optbinning:Optbinning的简介、安装、使用方法之详细攻略
Py之zhon:zhon库的简介、安装、使用方法之详细攻略
Py之zhon:zhon库的简介、安装、使用方法之详细攻略
Py之zhon:zhon库的简介、安装、使用方法之详细攻略