CVX用户指南之基础

CVX是一款用于构建和求解凸优化问题的MATLAB工具。模型需在cvx_begin和cvx_end之间定义,支持变量声明、目标函数设定及多种约束类型。变量可以用variable命令声明,如声明非负、对称或正定矩阵。目标函数可通过minimize或maximize设定,必须是凸或凹的。约束包括等式、不等式,可使用各种结构关键字。集合成员约束用于指定变量属于特定凸集,如正半定矩阵锥。双变量可用于查看原问题的敏感性和互补松弛条件。表达式持有者允许存储和重复使用中间计算结果。
摘要由CSDN通过智能技术生成

cvx_begin和cvx_end

所有 CVX 模型前面必须有命令cvx_begin,并以命令cvx_end终止。所有变量声明、目标函数和约束都应介于两者之间。cvx_begin命令可能还包括一个以上的修饰符:

cvx_begin quiet

防止模型在求解时生成任何屏幕输出。

cvx_begin sdp

调用半定编程模式

cvx_begin gp

调用几何编程模式

这些修饰符可以在适当的时候组合使用;例如,cvx_begin sdp quiet 会调用 SDP 模式并静音求解器输出。

变量

所有变量都必须使用variable命令(或variables命令;见下文)声明,然后才能在约束或目标函数中使用。variable命令包括变量的名称、可选的维度列表以及一个或多个关键字,这些关键字提供有关变量内容或结构的其他信息。

变量可以是实或复标量、向量、矩阵或n-维度数组。例如

variable X
variable Y(20,10)
variable Z(5,5,5)

总共声明 326 个(标量)变量:一个标量 X、一个 20x10 矩阵 Y(包含 200 个标量变量)和一个 5x5x5 数组 Z(包含 125 个标量变量)。

变量声明还可以包含一个或多个关键字,以表示变量的各种结构或条件。例如,要声明复变量,请使用 complex 关键字:

variable w(50) complex

非负变量和对称/埃尔米特正半定 (PSD) 矩阵可以分别使用 nonnegative 和 semidefinite关键字指定:

variable x(10) nonnegative
variable Z(5,5) semidefinite
variable Q(5,5) complex semidefinite

在这个例子中,x 是一个非负向量,Z 是一个实对称的 PSD 矩阵,Q是一个复埃尔米特 PSD 矩阵。正如我们将在下面看到的,hermitian semidefinite 将是第三种情况的一种等效选择。

对于 MIDCP,integer 和 binary关键字分别用于声明整数和二进制变量:

variable p(10) integer
variable q binary

可以使用各种关键字来帮助构造具有矩阵结构的变量,例如对称性或带状。例如,代码段

variable Y(50,50) symmetric
variable Z(100,100) hermitian toeplitz

声明 Y 为50×50实对称矩阵变量,和 Z 为100×100 埃尔米特托普利茨矩阵变量。(请注意,hermitian关键字还指定矩阵是复的。)当前支持的结构关键字包括:

banded(lb,ub)      diagonal           hankel             hermitian
skew_symmetric     symmetric          toeplitz           tridiagonal
lower_bidiagonal   lower_hessenberg   lower_triangular
upper_bidiagonal   upper_hankel       upper_hessenberg   upper_triangular

下划线实际上可以省略;因此,例如,lower triangular也是可以接受的。这些关键字不言自明,但有以下几个例外:

banded(lb,ub)

矩阵具有较低的带宽 lb 和较高的带宽 ub。如果 lb 和 ub 均为零,则生成对角矩阵。可以省略 ub,在这种情况下,它被设置为等于 lb。例如,‎‎ banded(1,1) (或 banded(1)) ‎‎是一个三对角矩阵。‎

upper_hankel

‎矩阵是 Hankel(即沿反对角线不变),在中心反对角线下方为零,即‎i+j>n+1.

当提供多个关键字时,生成的矩阵结构由交集确定。例如,symmetric tridiagonal是有效组合。也就是说,CVX确实拒绝诸如symmetric lower_triangular的组合,当存在更合理的替代方案时 - 在这种情况下是diagonal。此外,如果关键字完全冲突,使得没有非零矩阵满足所有关键字,则会导致错误。

特定于矩阵的关键字可应用于n-维度数组:数组的

  • 9
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值