美文网首页读书笔记
Yalmip学习笔记

Yalmip学习笔记

作者: Echo_Mz | 来源:发表于2020-12-17 20:07 被阅读0次

1 什么是yalmip

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

2 yalmip安装方式

下载官网:YALMIP  https://yalmip.github.io/

将其解压至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

来源:简书

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

相关文章

  • Yalmip学习笔记

    1 什么是yalmip yalmip是一个Matlab的工具包,通过matlab实现各种操作和调用,用来处理SDP...

  • Yalmip使用学习

    所有博文已迁移至个人网站:https://www.ravenxrz.ink新链接:https://www.rave...

  • YALMIP + MOSEK

    一、在matlab路径中安装yalmip yalmip文件夹解压在toolbox文件夹里 然后添加路径 在 Fil...

  • 电网求解器应用

    求解器在电力如何部署? 目前做电力系统优化最主流的方法就是:Matlab + Yalmip + Cplex ; 第...

  • MARKDOWN学习笔记

    标题 # MARKDOWN学习笔记 MARKDOWN学习笔记 MARKDOWN学习笔记- MARKDOWN学习笔记...

  • 规划利器--YALMIP工具箱

    YALMIP是一个MATLAB上的一个工具箱.它让你用MATLAB语法优雅地解决各种规化问题. 安装 确保MATL...

  • Python+Gurobi+Pulp解决线性规划问题

    实验室在用的Matlab,Yalmip和Cplex组合用于解决线性规划问题有不少限制,在老师的建议下想用Pytho...

  • sdpvar

    yalmip一共有三种方式创建决策变量,分别为: sdpvar-创建实数型决策变量 intbar-创建整数型决策变...

  • ReactNative学习笔记(从基本概要到控件间传值)

    ReactNative学习笔记1.1 ReactNative学习笔记1.2 ReactNative学习笔记1.3 ...

  • Kotlin学习笔记:类和接口

    Kotlin学习笔记:概述Kotlin学习笔记:基本语法和函数Kotlin学习笔记:类和接口Kotlin学习笔记:...

网友评论

    本文标题:Yalmip学习笔记

    本文链接:https://www.haomeiwen.com/subject/xnmdvktx.html