Matlab中CVX工具箱使用

CVX是一个凸优化解决工具,需要在Matlab上使用。
CVX让Matlab变成一个模型语言,可以使用Matlab的标准语法完成优化问题的求解。

安装

  1. 下载官方安装包,解压缩到任意路径,建议和Matlab放到一起。
  2. 打开Matlab,切换路径到CVX的存放路径,Matlab中运行cvx_setup命令即完成安装。
cd C:\personal\cvx
cvx_setup
  • CVX 支持的解析器slover
    该版本的cvx支持4种具有不同特性的解析器slover : SeDuMi、SDPT3、MOSEK 、Gurobi

所以使用cvx并不需要去额外下载一个slover,因为CVX的安装包中已经包含了 SeDuMi and SDPT3,这两个slover是免费许可的,默认启用的是SDPT3(The default solver is currently SDPT3)。

  • MOSEK 包含在CVX的教育许可证和商业许可证中,使用教育邮箱申请教育版许可,即可免费使用。
  • Gurobi and MOSEK 同样也可以搭载到CVX中去,但是你需要获得专业版许可证CVX Professional license才能使用这些功能。

(可以下载带有Gurobi and MOSEK的CVX包或单独下载Gurobi and MOSEK,之后安装专业版许可证) ,两个公司均有教育许可。

使用实例

1、官网实例,目标是解决如下优化问题:
minimize∥Ax−b∥2subject toCx=d∥x∥∞≤e\begin{array}{ll} \text{minimize} & \|Ax-b\|_2 \\ \text{subject to} & Cx=d \\ & \|x\|_\infty\leq e \end{array} minimizesubject to​∥Ax−b∥2​Cx=d∥x∥∞​≤e​
在Matlab中使用以下代码即可完成优化求解,

m = 20; n = 10; p = 4;
A = randn(m,n); b = randn(m,1);
C = randn(p,n); d = randn(p,1); e = rand;
cvx_beginvariable x(n)minimize( norm( A * x - b, 2 ) )  %目标函数subject toC * x == d                     %约束条件1norm( x, Inf ) <= e               %约束条件2
cvx_end

2、上面的自变量是单个向量,下面给出一个多个变量的求解方案;
还是一个凸函数最优化问题,主要问题如下:
首先要把需要解决的问题写成convex optimization的标准问题,即明确目标函数和条件约束。
max⁡g,tts.t. ℜ{2gm−1HMll^g−gm−1HMll^gm−1}≥t,∀l≠l^∥g∥≤Mp\begin{array}{l}{\max _{\mathbf{g}, t} t} \\ {\text { s.t. } \Re\left\{2 \mathbf{g}_{m-1}^{H} \mathbf{M}_{l \hat{l}} \mathbf{g}-\mathbf{g}_{m-1}^{H} \mathbf{M}_{l \hat{l}} \mathbf{g}_{m-1}\right\} \geq t, \forall l \neq \hat{l}} \\ {\quad \quad\|\mathbf{g}\| \leq M_p}\end{array} maxg,t​t s.t. ℜ{2gm−1H​Mll^​g−gm−1H​Mll^​gm−1​}≥t,∀l​=l^∥g∥≤Mp​​
其中,Mll^M_{l\hat{l}}Mll^​为矩阵,MpM_pMp​为固定值,约束向量ggg的幅度。

cvx_beginvariable g(n,1) tmaximize (t)   %目标函数subject to         %约束条件for i = 1:56real(g_m'*M(i)*g - g_m'*M(i)*g_m) >= t;end norm(g) <= M;
cvx_end

在Matlab中可以使用循环语句完成大量约束的枚举,更加方便。

Matlab中CVX工具箱使用相关推荐

  1. MATLAB中CVX工具箱解决凸优化问题的基本知识——语法、变量声明、目标函数、约束条件、cvx编程错误及解决方法

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.语法 二.变量声明 三.目标函数 四.约束条件 五.函数 六.cvx特有的数学运算表达式 七.常见错误 八.进阶阅 ...

  2. Matlab中EMD工具箱的下载安装和使用

    Matlab中EMD工具箱的下载安装和使用 Matlab中EMD工具箱的下载安装和使用 电脑环境 下载指南 安装步骤 使用示例 Matlab中EMD工具箱的下载安装和使用 电脑环境 笔者的电脑环境为( ...

  3. matlab画图模糊,[转载]matlab中模糊工具箱的使用

    用 Matlab 中的 Fuzzy 工具箱做一个简单的模糊控制,流程如下: 1.创建一个 FIS (Fuzzy Inference System ) 对象, a = newfis(fisName,fi ...

  4. matlab中m_map工具箱绘制大圆航线

    m_map工具箱需要从外部下载导入进matlab.m-map工具箱中常用的函数有:m_proj('proj name','property',value,-) 投影方式,投影区域大小····· m_c ...

  5. matlab中模糊工具箱的使用

    关于模糊控制查了一些资料,觉得下面的例子简单又易于理解,甚好,现转载如下,以备日后查阅及与大家分享 用 Matlab 的 Fuzzy 工具箱实现模糊控制 转自http://blog.daviesliu ...

  6. 在matlab中添加工具箱

    1.如工具包spasm,解压够里面有好多个.m文件,把spasm文件夹放到matlab的安装目录下的toolbox中,如D:\Mathlab2009a\toolbox 2.在matlab中写命令 ad ...

  7. matlab中PDE工具箱如何使用,使用PDE工具箱求解偏微分方程

    在科学技术各领域中,有很多问题都可以归结为偏微分方程问题.在物理专业的力学.热学.电学.光学.近代物理课程中都可遇见偏微分方程. 偏微分方程,再加上边界条件.初始条件构成的数学模型,只有在很特殊情况下 ...

  8. matlab中统计工具箱函数名大全

    MATLAB统计工具箱包括概率分布.方差分析.假设检验.分布检验.非参数检验.回归分析.判别分析.主成分分析.因子分析.系统聚类分析.K均值聚类分析.试验设计.决策树.多元方差分析.统计过程控制和统计 ...

  9. matlab中map工具箱(Mapping toolbox)使用

    Mapping Toolbox是Matlab提供的,一整套包含许多函数跟图形用户界面的工具箱:它可以帮助用户分析几何空间方面的数据:并以地图的形式显示出来! worldmap命令 help world ...

  10. matlab中gatbx工具箱的添加

    1. 从http://crystalgate.shef.ac.uk/code/下载工具箱压缩包gatbx.zip 2. 解压gatbx.zip,将其子文件夹genetic放在matlab安装目录too ...

最新文章

  1. 10个有趣的javascript和css库(2019年5月最新)
  2. (转)修改ETM,用Ogre实现《天龙八部》地形与部分场景详解(附源码)
  3. 飞机大战html游戏全代码js、jquery操作
  4. AI论文引用排行榜丨微软第一,清华第九;Alphabet董事长看AI:美国仅领先5年,大陆追赶速度快;
  5. Linux服务器的最大内存和CPU数
  6. 【jquery模仿net控件】简单的dropdownlist与datalist
  7. Matlab 预防性维修,使用 MATLAB 进行预测性维护简介
  8. C# default關鍵字
  9. 我会铭记这一天:2016年10月25日
  10. 性能优化(6):为什么一定要将css置顶?
  11. script language=JavaScript defer
  12. 绑定touch事件后click无效,vue项目解决棒法
  13. 面经-软件测试面试常见面试题全套合集系列4-5
  14. H3C|HUAWEI 交换机Comware系统的基本使用(以HUAWEI S5720为例)
  15. suger BI 创建任务
  16. java translate_java – 当使用translate()方法时,JPanel中的Tit...
  17. 看未来的企业是如何解决潜规则的
  18. 【win10】文件重命名怎么改不了文件格式/改不了后缀/想要更改文件后缀/改变文件类型
  19. 如何将PDF转换成JPG——speedPDF在线免费批量PDF转JPG
  20. 【Linux8系统学习】使用RAID与LVM磁盘陈列技术(一)

热门文章

  1. 办公软件excel表格_EXCEL表格模板下载推荐?办公资源网优质海量素材资源免费下载...
  2. Git代码提交,固定日志模板
  3. shopex服务器信息,shopex_全手册.doc
  4. 黑马程序员-IT学生解惑真经-想做程序员或者正在迟疑的同学可以看一下,很有帮助的一篇文章
  5. c语言令牌桶原理,基于多 goroutine 实现令牌桶
  6. Python】Scrapy抓取多玩Gif图片
  7. centos安装7zip
  8. N81新手入门全攻略——N81常规设置问答篇
  9. 单片机热敏电阻测温度c语言,单片机实现热热敏电阻测温电路
  10. JAVA基础知识点大全之一