1 什么是yalmip

yalmip是一个Matlab的工具包,通过matlab实现各种操作和调用,用来处理SDP非常好用。

2 yalmip安装方式

将其解压至matlab的toolbox文件夹下,打开matlab软件添加路径,注意:要将压缩包内的子文件夹都加入路径,选择“添加并包含子文件夹”来添加路径。最后键入which sdpvar命令,显示sdpvar路径则安装成功。

3.使用

a. 设置变量

设置默认格式变量:x = sdpvar(m, n, [option])

设置整数格式变量:x = intvar(m, n, [option])

设置0-1格式变量:x = binvar(m, n, [option])

b.设定目标函数

举例:f = [4 2 1] * x;

c.设定约束

直接设置:Constraints = [sum(x) <= 10, x(1) == 0, 0.5 <= x(2) <= 1.5];

增加新约束:Constraints = [Constraints, x(2) == 1,];

d.设定求解要求及参数

命令语句:sdpsettings(option1, value1, option2, value2, ……)

举例:ops=sdpsettings('solver','gurobi','verbos',2)

'solver' 参数指定程序用gurobi求解器(如果已经安装,否则会报错),如果不指定 ‘solver’ 参数,他会根据决策变量类型自动挑选已安装的、最适合的求解器;'verbose' 指定显示冗余度(冗余度越大,你就可以看到越详细的求解过程信息)

e.求解

result = solvesdp(F, f, ops)或sol = optimize(Constraints,Objective,options);

查看最优解x:solution=value(x)

4.举例:

举例

代码如下:

% 清除工作区

clear;clc;close all;

% 创建决策变量

x=sdpvar(1,2);

% 添加约束条件

C=[x(1)+x(2)>=2x(2)-x(1)<=1x(1)<=1];

% 配置

ops=sdpsettings('verbose',0,'solver','lpsolve');

% 目标函数

z=-(x(1)+2*x(2))/(2*x(1)+x(2));% 注意这是求解最大值

% 求解

reuslt=optimize(C,z);

if reuslt.problem==0 % problem =0 代表求解成功

value(x)

-value(z)% 反转

else

disp('求解出错');

end

5.问题查探:

% Analyze error flags

if sol.problem == 0

% Extract and display value

solution = value(x)

else

display('Hmm, something went wrong!');

sol.info

yalmiperror(sol.problem)

作者:RavenX

链接:https://www.jianshu.com/p/e1c45b3d8d8a

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

sdp3命令 matlab,Yalmip学习笔记相关推荐

  1. 系统辨识理论及MATLAB仿真——学习笔记(1)

    系统辨识理论及MATLAB仿真学习笔记(1) 前言 目录 第1章 绪论 1.1 建立数学模型的基本方法 1.2 系统辨识的定义 1.3 系统辨识的研究目的 1.4 数学模型的分类 1.5 几种常见的数 ...

  2. matlab bwmorph spur,matlab图像处理学习笔记-数学形态与二值图像操作

    matlab图像处理学习笔记-数学形态与二值图像操作 数学形态学主要处理的是二值图像,因为二值图像的处理操作比较简单. 9.1 数学形态学图像处理 基本思想:利用一个称作结构元素(structurin ...

  3. 如何用matlab分割颜色,Matlab图像处理学习笔记(二):基于颜色的图像分割

    在实际处理图像时,经常需要对图像进行分割,然后提取ROI,本学习笔记记录怎么用Matlab实现基于颜色的图像分割. 基于颜色的图像分割实现简单,算法简洁,具有很好的实时性. 实现代码的过程中,我参考了 ...

  4. CEEMDAN:完全噪声辅助聚合经验模态分解(matlab)——学习笔记3

    CEEMDAN:完全噪声辅助聚合经验模态分解--学习笔记3 从EMD到CEEMDAN 1.EMD EMD算法将基于原始信号的局部特征时间尺度,将原始信号分解为特征模态函数,即将其分解为从高频到低频的一 ...

  5. Matlab编程学习笔记【待续】

    最近想用Matlab进行数据分析,算法性能测试,平时由于用的是C.C++,因此很多习惯都一时改不了,这里自己列出来一些Matlab中明显不同的地方. 矩阵单元元素访问方式:A(1,2)---A[1][ ...

  6. MATLAB/simulink学习笔记(二)——对正弦函数判断的正负以及分段函数仿真

    关注"小西的学习笔记"公众号 获得更多资料

  7. MATLAB | 入门——学习笔记

    VR大作业得写一下hrtf相关的东西,终于不得不用matlab了,趁着它还没安完,赶紧学一波... 原教程:MATLAB教程 MATLAB介绍 MATLAB基本语法 MATLAB变量 ans clea ...

  8. Matlab基础学习笔记(五)—— Simulink仿真

    听万门的一个Matlab实践课做的笔记 知识结构 笔记链接(点我) 知识点比较零散记得比较概括,用幕布看可能更清晰一点 本节内容只是做个简单记录,具体使用某个库再进行具体学习 顺便放个邀请注册链接,可 ...

  9. MATLAB基础学习笔记01:初探MATLAB世界

    文章目录 一.安装MATLAB2016 (一)下载MATLAB2016 (二)安装MATLAB2016 二.启动MATLAB2016 --解决远程桌面启动报错的问题 三.变量操作 (一)给变量赋值 ( ...

最新文章

  1. Mysql 分页语句Limit用法
  2. ubuntu中mysql怎么退出命令_ubuntu的Linux下安装MySQL
  3. DB pivot unpivot
  4. 解析php变量,php使用parse_str实现查询字符串解析到变量中的方法
  5. 双层板在哪层覆铜_多层板的生产过程,与双层板有何不同?
  6. 模型保存的方法-----仅保存权重
  7. DirectFB简介以及移植[一]【转】
  8. Install Cockpit on Fedora/CentOS/RHEL
  9. UVa 12261 High Score (贪心“向左走,向右走”)
  10. VMware虚拟机下载、安装与使用
  11. 大气校正后的ndvi_ENVI下高分一号WFV数据FLAASH大气校正
  12. iredmail邮件服务器安装流程
  13. LuatOS之LVGL字体篇
  14. 适合后端开发人员的html笔记
  15. Python爬虫:头条小姐姐们都来给你拜年啦!
  16. 揭开物联网的神秘面纱--物联网小灯
  17. 2021-06-21 12点 程序外生活 - 中国A50指数 机器预测学习跟踪记录 - 周六反弹失败,等待跌完,继续等待4小时第一个底分型出现。周月线持续跌势。
  18. 山东理工大学ACM平台题答案关于C语言 2098 识别浮点常量问题
  19. 如何下载jquery.js文件
  20. java 邮件 客户端_JAVA编写ESMTP客户端发送邮件代码

热门文章

  1. FPGA _Verilog HDL_8选一多路选择器设计
  2. 互联网大脑架构分析之腾讯:至少已布局三大AI实验室
  3. 搞搞Google谷歌新曲(一)插电源上网还打电话
  4. Java 工厂方法模式
  5. android 左右声道,Android左右声道的控制
  6. echarts图表实战
  7. Vue+Cesium创建项目并加载地图全过程
  8. JSP运行原理 九大内置对象 四大作用域
  9. python pdf 数据转excel 表格_python实现PDF中表格转化为Excel的方法
  10. oracle----存储过程