MATLAB求解线性规划(含整数规划和01规划)问题

MATLAB 求解线性规划(含整数规划和0-1 规划)问题

线性规划是数学规划中的一类最简单规划问题,常见的线性规划是一个有约

束的,变量范围为有理数的线性规划。如:

max z  7x 12 y

9x  4y  300

4x 5y  200

s.t 

3x 10y  300

x , y  0

对于这类线性规划问题,数学理论已经较为完善,可以有多种方法求解此类问题。

但写这篇文章的目的并不是为了介绍数学理论,我们这里主要讲解如果利用工具

求解这一类线性规划问题。

最著名,同时也是最强大的数学最优化软件是LINGO/LINDO 软件包,它能

够求解多种的数学规划问题,同时还提供了多种的分析能力。但LINGO 软件并

不容易上手,同时,应用LINGO 的场合一般是大规模的线性规划问题,小小的

线性规划完全可以不使用它。一个更受科研人员欢迎的数学软件是 MATLAB ,

它以功能强大而称著,并有数学软件中的“航空母舰”之称。我们这里就是要学

习使用MATLAB 软件求解线性规划 (含整数规划和0-1 规划)问题。

为了使得不熟悉MATLAB 的人员也能够使用MATLAB 进行线性规划问题

求解,本文将对MATALB 中使用到的函数和过程以及结果进行详细的分析,最

后会对每一个问题都给出一个可以完全“套用”的MATLAB 程序。

我们首先从上面的线性规划问题开始,为了便于表达,将上面的式子写成矩

阵形式:

max z 7x 12y

 9 4 300

   

x

     

 4 5    200

s.t   y  

3 10    300 

   

x , y  0

于是约束就表达为了一个Ax b 不等式。

求解MATLAB 线性规划时,最常用的函数是linprog 函数,下面来介绍一下这个

函数的使用。

打开MATLAB 帮助文档 (PS:帮助文档的内容是最全的,只要你的英文过了专业8

级),可以看到linprog 函数求解的是具有如下标准形式的线性规划:

min f Tx

x

 A X b

s.t Aeq X beq

 lb  x  ub

公式中各符号的意义是自明的,在这里简单介绍下,首先MATLAB 中求解的

是目标函数是最小值的问题,但如果我们的目标函数是求最大值,可以通过对目

标函数中每一项中乘以-1,将求最大值问题转化为求最小值问题;A,b 分别为

不等式约束中的系数矩阵。Aeq 和beq 分别为等式约束中的系数矩阵,lb,和ub

分别为每个变量的上下区间;最后f 为目标函数中各变量的系数矩阵。

现在,是时候动动手,使用MATLAB 编写代码求解这个线性规划了。MATLAB

代码如下所示:

f=[-7,-12];

A=[9 4;4 5;3 10];

b=[300;200;300];

lb=zeros(2,1);% 生成一个2行1列的全1矩阵

[x,fval]=linprog(f,A,b,[],[],lb,[])

我们来解释下linprog 函数中每参数的意义,linprog 中的一个原型如下:

[x,fval,exitflag] = linprog(f,A,b,Aeq,beq,lb,ub)

这7 个参数的意义和上面f、A、b 的意义是一样的。f 为目标函数的系数矩阵,

A 为线性规划不等式约束的变量系数矩阵,b 为不等式约束的资源数(如上面的

[300;200;300]),这是一个N 行1 列的矩阵,N 为变量的个数。Aeq 和beq 是相

应等式约束的变量系数矩阵和资源数(很明显,上面的例子中并没有等式约束)。

lb 和ub 分别为保变量的上下区间。在上面的例子中,x 和y 和最小值都为0 但

都无最大值约束。而

matlab 线性规划求最大值,MATLAB求解线性规划(含整数规划和01规划)问题.pdf相关推荐

  1. matlab 矩阵线性规划,MATLAB求解线性规划(含整数规划和0-1规划)问题

    对于这类线性规划问题,数学理论已经较为完善,可以有多种方法求解此类问题.但写这篇文章的目的并不是为了介绍数学理论,我们这里主要讲解如果利用工具求解这一类线性规划问题. 最著名,同时也是最强大的数学最优 ...

  2. 数学建模之线性规划问题(含整数规划和0-1规划)

    线性规划问题 线性规划是数学规划中的一类最简单规划问题,常见的线性规划是一个有约束的,变量范围为有理数的线性规划. 如: 为了便于表达,将上面的式子写成矩阵形式: 于是约束就表达为了一个不等式. 求解 ...

  3. 一般线性规划求最大值

    一般线性规划求最大值,算法过程和步骤与一般线性规划求最小值的步骤刚好相反: 一般线性规划求最小值的算法和代码:点击打开链接 下面介绍一般线性规划求最大值的的一些计算原理和算法步骤: 一个课本实例: 该 ...

  4. matlab求曲线极值程序,matlab函数求极值matlab函数求极值.ppt

    matlab函数求极值matlab函数求极值 * * 函数的极值 1.一元函数的极值 函数命令:fminbnd 调用格式:[x,feval,exitflag,output]=fminbnd(fun,x ...

  5. matlab 传递函数求截止频率,高分求解RC滤波电路的传递函数和截止频率

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:高分求解RC滤波电路的传递函数和截止频率,请高手解答, 问题详情:麻烦高手解答一下这个电路的传递函数和截止频率(这个电路回答:呵呵, ...

  6. matlab表达式求值,Matlab进行表达式求值(含参变量代入求值)

    (一)前言 本文简单介绍如何使用matlab中的eval()函数与subs()函数进行表达式(含参/不含参)的求值. (二)不含参表达式 对于一个表达式的求值运算,我们使用eval函数求解,如eval ...

  7. matlab trapz求二重积分,matlab求积分(超详细,含int integral integral2/3 quad trapz

    matlab求积分 matlab求积分函数工具: int 用法1: 格式: int(fun,x,a,b) 功能: 计算定积分 用法2: 格式: int(f,x) 功能: 计算不定积分 注: 使用int ...

  8. matlab中求立方根,MATLAB基础入门

    MATLAB有许多使用方法,但最基本,也是入门时首先要掌握的是MATLAB命令窗口(Command Window)的使用方法. MATLAB命令窗口是用于输入数据,运行MATLAB函数和脚本,并显示结 ...

  9. matlab随机矩阵求最大值,产生一个5*7的随机矩阵,编程求出其最小值和最大值及其所处的位置....

    matlab中怎么产生一个随机矩阵 and(m,n)产生mxn,0~1均匀分布的随机矩阵 1.VB编程,求一个M行N列的矩阵四周元素之和,元素值可以随机产生,M. N从键盘输入 这个是那一章的全部答案 ...

最新文章

  1. python实现tcp发包_python 多线程tcp udp发包 Dos工具。
  2. 嵌入式JavaScript脚本解释器的研究与实现
  3. MySQL 创建用户与修改密码
  4. Windows Server 2019 开发环境
  5. Management of your data
  6. 第二章:Android游戏开发之前台渲染
  7. 禁用浏览器滚动条的解决方案
  8. 在IE下,当eval遇上function
  9. [Python从零到壹] 三.语法基础之文件操作、CSV文件读写及面向对象
  10. linux c中动态申请二维数组,Linux C 编程详解第五篇:二维数组
  11. Linux中find用法
  12. Windows域控 设置全域的密码策略 【全域策略生效】
  13. php返回成功信息msg_PHP进化史 — 从v5.6到v8.0(可收藏)
  14. 数据结构面试题以及答案整理
  15. 选型宝访谈:如何用好移动报销云平台,解放全员工作效率?
  16. Android MediaProjection截屏与录屏(ScreenCapture Library 的使用)(二)
  17. 常用的数字正则表达式
  18. 【VideoQA最新文献阅读】Open-Ended Multi-Modal Relational Reason for Video Question Answering
  19. 【案例】简单图片和段落上下排版制作
  20. Linux信号量(3)-内核信号量

热门文章

  1. session的创建方式
  2. Spring Tool Suite插件的安装
  3. 摄像头驱动0V7725学习笔记连载(三):0V7725 SCCB时序的实现
  4. Nginx之二:nginx.conf简单配置(参数详解)
  5. java.lang.OutOfMemoryError: GC overhead limit exceeded 问题分析和解决(转)
  6. 没有找到 AUTOBACKUP
  7. Windows Phone 7 Coding4Fun的弹出框
  8. c语言中英互译程序,c语言怎么翻译? 程序怎么运行?
  9. predict函数 R_R包randomForest的随机森林回归模型以及对重要变量的选择
  10. 组态王opc_组态王做 OPC Cilent