OSQP二次规划求解库使用说明

文章介绍了二次规划的一般形式和求解算法,如有效集法、内点法和ADMM等。重点讨论了OSQP库,它采用ADMM方法,相比qpOASES具有更高的求解效率。文中提供了一个简单的OSQP使用示例,展示如何设置内核矩阵P、偏移向量q、仿射矩阵A以及边界条件,并提供了相应的C代码片段来说明如何用OSQP解决凸二次规划问题。

OSQP二次规划求解库使用说明

贺志国
2023.5.10

1. 凸二次规划的一般表达式

min12xTPx+qTxs.t.l≤Ax≤u min \quad \frac{1}{2}x^T Px + q^Tx \qquad s.t. \quad l \leq Ax \leq u min21xTPx+qTxs.t.lAxu
其中,PPP称为内核矩阵,要求是半正定矩阵。正定矩阵在复数域上是共轭对称矩阵(Hermite矩阵),在实数域上是对称矩阵。因为我们在实数域内求解,PPP也是一个对称矩阵。qqq称为偏移向量,AAA称为仿射矩阵。

凸二次规划的求解算法主要有如下几种:

  • 有效集法:Active Set Method
  • 内点法:Interior Point Method
  • 一阶方法:First Order Method
  • 交替方向乘子法:Alternating Direction Method of Multipliers(ADMM)

OSQP利用交替方向乘子法(ADMM)求解,qpOASES则利用有效集法,从网上给出的测评报告看,OSQP库的求解效率比qpOASES库要高很多。

2. 使用OSQP求解凸二次规划的简单示例

为了形象地说明使用OSQP求解凸二次规划的过程,下面给出一个简单的示例:
min12xT[4112]x+[11]Tx min \quad \frac{1}{2}x^T\left[\begin{matrix} 4 & 1\\ 1 & 2\end{matrix}\right]x + \left[\begin{matrix} 1 \\ 1\end{matrix}\right]^Tx min21xT[41

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值