<>定义变量

* variable x(20); 表示20维的向量x是决策变量
* variable y(20,30) complex; 表示决策变量y是20x30的矩阵,由复数组成
* variable X(20,20) symmetric; 表示决策变量X是20x20的决策变量,加上symmetric说明必须是对称矩阵
* variables x(20) y(20,30); 声明变量的时候可以同时声明好几个
<>定义目标函数

如果是求最小,一定要是凸函数的形式,求最大用凹函数

* 线性linear: cTx (c转置乘上x),
trace(A * X) A和X如果都是对称的,相乘求迹相当于对应元素相乘再求和,对x里面的变量来说是线性的
* 二次quadratic: xTQx其中Q是半正定
* 范数2-norm: norm(Ax - b,2)若没有制定2,默认的是2范数
<>约束条件

* linear: bTx <= a, ATx <= b;
* 二次quadratic: xTQx <= a; Q一定是半正定的
* 二阶锥约束SOCP:x1平方 + x2平方 + x3平方 <= 0; x3 >= 0;
* 决策变量是矩阵SDP:X >= 0(x要求是半正定的变量)
若在cvx_begin之后没有加上SDP,出现X >= 0 则是要求x出现的每个分量大于等于0
<>定义x属于某个集合

* nonnegative set: x == nonnegative(n)(equals to x >= 0);
表示x属于非负向量组成的集合,这个向量是n维的,==表示属于
* simplex: x == simplex(n)(equals to
)
非负向量,加起来还要为1,如果是二维,那就是直线;若x是三维,就会在第一挂线像是三角形
* semidefinite set半定矩阵:X==semidefinite(n),(equals to X>=0, symmetric)
* 相当于SDP问题里面,x>=0
到这里输完之后cvx_end就结束了

<>其他设置

* solver precision:cvx_precision defalt(low/medium/high/best);
cvx允许调节解的精度
例如 cvx_low
* selecting a solver:cvx_solver sedumi

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信