CVXPY 是一个嵌入 Python 的凸优化建模语言,让用户按数学形式自然书写问题,而不必迁就求解器的标准形式。
这个工具是什么
CVXPY 是一个嵌入 Python 的凸优化建模语言,最初是斯坦福大学的研究项目,现由多个机构与国家的开发者共同维护,采用 Apache-2.0 许可证。它的定位是建模层而非求解器:用户按数学表达式书写目标函数与约束,CVXPY 负责将其转换为求解器可接受的形式,并调用后端求解器计算。README 说明它可建模凸优化问题、混合整数凸优化问题、几何规划、拟凸规划与非线性规划。CVXPY 依赖 Clarabel、SCS、OSQP 与 HiGHS 等开源求解器,其他求解器需另行安装。
核心能力
- 按数学形式自然表达目标与约束,无需手工改写为求解器标准形式
- 支持凸优化、混合整数凸优化、几何规划、拟凸规划与非线性规划建模
- 求解后可直接读取变量最优值与约束的对偶变量值
- 内置 Clarabel、SCS、OSQP、HiGHS 等开源求解器,其他求解器可按需另行安装
科研中的典型用法
- 在最小二乘类问题中加入上下界等约束,直接写出目标函数并调用 solve 求解
- 需要约束对应的对偶变量时,从 constraint.dual_value 读取拉格朗日乘子
- 建模混合整数凸优化或几何规划问题,交由 CVXPY 转换后调用相应求解器
快速上手
可通过 pip install cvxpy 安装,也可用 conda install -c conda-forge cvxpy。依赖 Python >= 3.11、NumPy >= 2.0.0、SciPy >= 1.13.0,以及 Clarabel、OSQP、SCS、highspy、sparsediffpy 等。入门可参考官网教程、示例库与 API 参考;基本用法是定义 cp.Variable、构造目标与约束列表、建立 cp.Problem 后调用 solve()。
生态与相近工具
同领域还有面向不同建模风格与求解需求的工具,README 未逐一列举。CVXPY 自身不求解,而是依赖 Clarabel、SCS、OSQP、HiGHS 等开源求解器,其他求解器需单独安装。取舍时可考虑:若需要按数学形式建模并自动转换,可选 CVXPY;若需特定求解器或更底层控制,则直接使用相应求解器。
项目信息
- 仓库:cvxpy/cvxpy
- 星标:6,338 · 派生:1,214
- 主要语言:C++
- 许可证:Apache-2.0
- 最近提交:2026-09-19
- 项目主页:https://www.cvxpy.org
本文属于《学科研究工具知识库 · 数学》第 9 篇(按 GitHub 星标排序)。收录标准:该学科公开可获取的开源研究工具,星标与活跃度为主要参考,不代表对其性能或适用性的背书;选型前请结合自身场景评估。

发表评论 取消回复