Matlab中CVX工具箱使用
Matlab中CVX工具箱使用
CVX是一个凸优化解决工具,需要在Matlab上使用。
CVX让Matlab变成一个模型语言,可以使用Matlab的标准语法完成优化问题的求解。
安装
- 下载官方安装包,解压缩到任意路径,建议和Matlab放到一起。
- 打开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 defaultsolver
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∥2Cx=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
的标准问题,即明确目标函数和条件约束。
maxg,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,tt s.t. ℜ{2gm−1HMll^g−gm−1HMll^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工具箱使用相关推荐
- MATLAB中CVX工具箱解决凸优化问题的基本知识——语法、变量声明、目标函数、约束条件、cvx编程错误及解决方法
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.语法 二.变量声明 三.目标函数 四.约束条件 五.函数 六.cvx特有的数学运算表达式 七.常见错误 八.进阶阅 ...
- Matlab中EMD工具箱的下载安装和使用
Matlab中EMD工具箱的下载安装和使用 Matlab中EMD工具箱的下载安装和使用 电脑环境 下载指南 安装步骤 使用示例 Matlab中EMD工具箱的下载安装和使用 电脑环境 笔者的电脑环境为( ...
- matlab画图模糊,[转载]matlab中模糊工具箱的使用
用 Matlab 中的 Fuzzy 工具箱做一个简单的模糊控制,流程如下: 1.创建一个 FIS (Fuzzy Inference System ) 对象, a = newfis(fisName,fi ...
- matlab中m_map工具箱绘制大圆航线
m_map工具箱需要从外部下载导入进matlab.m-map工具箱中常用的函数有:m_proj('proj name','property',value,-) 投影方式,投影区域大小····· m_c ...
- matlab中模糊工具箱的使用
关于模糊控制查了一些资料,觉得下面的例子简单又易于理解,甚好,现转载如下,以备日后查阅及与大家分享 用 Matlab 的 Fuzzy 工具箱实现模糊控制 转自http://blog.daviesliu ...
- 在matlab中添加工具箱
1.如工具包spasm,解压够里面有好多个.m文件,把spasm文件夹放到matlab的安装目录下的toolbox中,如D:\Mathlab2009a\toolbox 2.在matlab中写命令 ad ...
- matlab中PDE工具箱如何使用,使用PDE工具箱求解偏微分方程
在科学技术各领域中,有很多问题都可以归结为偏微分方程问题.在物理专业的力学.热学.电学.光学.近代物理课程中都可遇见偏微分方程. 偏微分方程,再加上边界条件.初始条件构成的数学模型,只有在很特殊情况下 ...
- matlab中统计工具箱函数名大全
MATLAB统计工具箱包括概率分布.方差分析.假设检验.分布检验.非参数检验.回归分析.判别分析.主成分分析.因子分析.系统聚类分析.K均值聚类分析.试验设计.决策树.多元方差分析.统计过程控制和统计 ...
- matlab中map工具箱(Mapping toolbox)使用
Mapping Toolbox是Matlab提供的,一整套包含许多函数跟图形用户界面的工具箱:它可以帮助用户分析几何空间方面的数据:并以地图的形式显示出来! worldmap命令 help world ...
- matlab中gatbx工具箱的添加
1. 从http://crystalgate.shef.ac.uk/code/下载工具箱压缩包gatbx.zip 2. 解压gatbx.zip,将其子文件夹genetic放在matlab安装目录too ...
最新文章
- 10个有趣的javascript和css库(2019年5月最新)
- (转)修改ETM,用Ogre实现《天龙八部》地形与部分场景详解(附源码)
- 飞机大战html游戏全代码js、jquery操作
- AI论文引用排行榜丨微软第一,清华第九;Alphabet董事长看AI:美国仅领先5年,大陆追赶速度快;
- Linux服务器的最大内存和CPU数
- 【jquery模仿net控件】简单的dropdownlist与datalist
- Matlab 预防性维修,使用 MATLAB 进行预测性维护简介
- C# default關鍵字
- 我会铭记这一天:2016年10月25日
- 性能优化(6):为什么一定要将css置顶?
- script language=JavaScript defer
- 绑定touch事件后click无效,vue项目解决棒法
- 面经-软件测试面试常见面试题全套合集系列4-5
- H3C|HUAWEI 交换机Comware系统的基本使用(以HUAWEI S5720为例)
- suger BI 创建任务
- java translate_java – 当使用translate()方法时,JPanel中的Tit...
- 看未来的企业是如何解决潜规则的
- 【win10】文件重命名怎么改不了文件格式/改不了后缀/想要更改文件后缀/改变文件类型
- 如何将PDF转换成JPG——speedPDF在线免费批量PDF转JPG
- 【Linux8系统学习】使用RAID与LVM磁盘陈列技术(一)
热门文章
- 办公软件excel表格_EXCEL表格模板下载推荐?办公资源网优质海量素材资源免费下载...
- Git代码提交,固定日志模板
- shopex服务器信息,shopex_全手册.doc
- 黑马程序员-IT学生解惑真经-想做程序员或者正在迟疑的同学可以看一下,很有帮助的一篇文章
- c语言令牌桶原理,基于多 goroutine 实现令牌桶
- Python】Scrapy抓取多玩Gif图片
- centos安装7zip
- N81新手入门全攻略——N81常规设置问答篇
- 单片机热敏电阻测温度c语言,单片机实现热热敏电阻测温电路
- JAVA基础知识点大全之一