matlab 线性规划求最大值,MATLAB求解线性规划(含整数规划和01规划)问题.pdf
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相关推荐
- matlab 矩阵线性规划,MATLAB求解线性规划(含整数规划和0-1规划)问题
对于这类线性规划问题,数学理论已经较为完善,可以有多种方法求解此类问题.但写这篇文章的目的并不是为了介绍数学理论,我们这里主要讲解如果利用工具求解这一类线性规划问题. 最著名,同时也是最强大的数学最优 ...
- 数学建模之线性规划问题(含整数规划和0-1规划)
线性规划问题 线性规划是数学规划中的一类最简单规划问题,常见的线性规划是一个有约束的,变量范围为有理数的线性规划. 如: 为了便于表达,将上面的式子写成矩阵形式: 于是约束就表达为了一个不等式. 求解 ...
- 一般线性规划求最大值
一般线性规划求最大值,算法过程和步骤与一般线性规划求最小值的步骤刚好相反: 一般线性规划求最小值的算法和代码:点击打开链接 下面介绍一般线性规划求最大值的的一些计算原理和算法步骤: 一个课本实例: 该 ...
- matlab求曲线极值程序,matlab函数求极值matlab函数求极值.ppt
matlab函数求极值matlab函数求极值 * * 函数的极值 1.一元函数的极值 函数命令:fminbnd 调用格式:[x,feval,exitflag,output]=fminbnd(fun,x ...
- matlab 传递函数求截止频率,高分求解RC滤波电路的传递函数和截止频率
公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:高分求解RC滤波电路的传递函数和截止频率,请高手解答, 问题详情:麻烦高手解答一下这个电路的传递函数和截止频率(这个电路回答:呵呵, ...
- matlab表达式求值,Matlab进行表达式求值(含参变量代入求值)
(一)前言 本文简单介绍如何使用matlab中的eval()函数与subs()函数进行表达式(含参/不含参)的求值. (二)不含参表达式 对于一个表达式的求值运算,我们使用eval函数求解,如eval ...
- matlab trapz求二重积分,matlab求积分(超详细,含int integral integral2/3 quad trapz
matlab求积分 matlab求积分函数工具: int 用法1: 格式: int(fun,x,a,b) 功能: 计算定积分 用法2: 格式: int(f,x) 功能: 计算不定积分 注: 使用int ...
- matlab中求立方根,MATLAB基础入门
MATLAB有许多使用方法,但最基本,也是入门时首先要掌握的是MATLAB命令窗口(Command Window)的使用方法. MATLAB命令窗口是用于输入数据,运行MATLAB函数和脚本,并显示结 ...
- matlab随机矩阵求最大值,产生一个5*7的随机矩阵,编程求出其最小值和最大值及其所处的位置....
matlab中怎么产生一个随机矩阵 and(m,n)产生mxn,0~1均匀分布的随机矩阵 1.VB编程,求一个M行N列的矩阵四周元素之和,元素值可以随机产生,M. N从键盘输入 这个是那一章的全部答案 ...
最新文章
- python实现tcp发包_python 多线程tcp udp发包 Dos工具。
- 嵌入式JavaScript脚本解释器的研究与实现
- MySQL 创建用户与修改密码
- Windows Server 2019 开发环境
- Management of your data
- 第二章:Android游戏开发之前台渲染
- 禁用浏览器滚动条的解决方案
- 在IE下,当eval遇上function
- [Python从零到壹] 三.语法基础之文件操作、CSV文件读写及面向对象
- linux c中动态申请二维数组,Linux C 编程详解第五篇:二维数组
- Linux中find用法
- Windows域控 设置全域的密码策略 【全域策略生效】
- php返回成功信息msg_PHP进化史 — 从v5.6到v8.0(可收藏)
- 数据结构面试题以及答案整理
- 选型宝访谈:如何用好移动报销云平台,解放全员工作效率?
- Android MediaProjection截屏与录屏(ScreenCapture Library 的使用)(二)
- 常用的数字正则表达式
- 【VideoQA最新文献阅读】Open-Ended Multi-Modal Relational Reason for Video Question Answering
- 【案例】简单图片和段落上下排版制作
- Linux信号量(3)-内核信号量
热门文章
- session的创建方式
- Spring Tool Suite插件的安装
- 摄像头驱动0V7725学习笔记连载(三):0V7725 SCCB时序的实现
- Nginx之二:nginx.conf简单配置(参数详解)
- java.lang.OutOfMemoryError: GC overhead limit exceeded 问题分析和解决(转)
- 没有找到 AUTOBACKUP
- Windows Phone 7 Coding4Fun的弹出框
- c语言中英互译程序,c语言怎么翻译? 程序怎么运行?
- predict函数 R_R包randomForest的随机森林回归模型以及对重要变量的选择
- 组态王opc_组态王做 OPC Cilent