CVX介绍

您所在的位置:网站首页 matlabcvx工具箱 CVX介绍

CVX介绍

2024-06-11 03:05| 来源: 网络整理| 查看: 265

这些CVX介绍,主要是翻译CVX官网上面的使用手册,主要目的还是记录吧= =方便查阅 再给出一遍地址http://web.cvxr.com/cvx/doc/sdp.html 可以进去进行英文的对照。

那些熟悉半定规划(SDP)的人知道,在上述关于集合成员关系的讨论中利用集合semidefinite(n)的约束实际上通常用线性矩阵不等式(LMI)表示来表示。例如,给定X =XT∈Rn×nX =XT∈Rn×n,约束条件X⪰0表示X∈Sn+X∈S+ n; 也就是说X是正半定的。 当使用SDP模式时,CVX以不同的方式解释某些不等式约束。 具体来说: 1、平等约束解释相同(即元素)。 2、涉及向量和标量的不等式约束被解释为相同的; 即元素。 3、涉及非平方矩阵的不等式约束是不允许的; 试图使用它们会导致错误。 如果您希望对矩阵X和Y进行真正的元素比较,请使用矢量化操作X(:) = Y illegal X >= ones(n,n) or ones(n,n) >= Y legal X >= 0 or 0 >= Y legal

实际上,CVX对LMI约束的不等式运算符进行更严格的解释。 6、请注意,LMI约束在其输入上强制实施对称(实或Hermitian)。 与SDPSOL不同,CVX不会为您提取对称部分:您必须小心保证自己的对称性。 由于CVX支持对称矩阵的声明,这是相当简单的。 如果CVX无法确定LMI是否对称于合理的数值容差范围内,则会发出警告。 我们提供了一个函数sym(X)来提取方阵的对称部分; 即sym(X)= 0.5 *(X + X’)。 7、双变量(如果提供)将应用于转换后的相等约束。 如果找到最佳点,它将被赋予一个正半定值。

所以,例如,文件examples / closest_toeplitz_sdp.m中的CVX模型,

cvx_begin variable Z(n,n) hermitian toeplitz dual variable Q minimize( norm( Z - P, 'fro' ) ) Z == hermitian_semidefinite( n ) : Q; cvx_end

可以被写为:

cvx_begin sdp variable Z(n,n) hermitian toeplitz dual variable Q minimize( norm( Z - P, 'fro' ) ) Z >= 0 : Q; cvx_end

CVX示例库中的许多其他示例都使用半定约束;他们都使用SDP模式。要找到它们,只需使用您最喜欢的文件搜索工具在examples /子目录树中搜索文本cvx_begin sdp。其中一个例子转载于索引对偶变量中。

由于semidefinite编程是流行的,有些人可能会奇怪为什么SDP模式不是默认的行为。其原因是我们非常重视保持Matlab原生行为与CVX原生行为之间的一致性。使用> =,, = 0将变量Z约束为正半定。但是,在模型解决之后,Z已经被一个数值所取代,表达式Z> = 0将测试Z的元素非负性。为了验证Z的数值实际上是正半定,你必须执行像min(eig(Z))> = 0的测试。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3