用matlab求解线性规划问题

实验四 用MATLAB求解线性规划问题

一、实验目的:

了解Matlab的优化工具箱,能利用Matlab求解线性规划问题。

二、实验内容:

线性规划的数学模型有各种不同的形式,其一般形式可以写为:

目标函数:

约束条件:

这里称为目标函数,称为价值系数,称为价值向量,为求解的变量,由系数组成的矩阵

称为不等式约束矩阵,由系数组成的矩阵

称为等式约束矩阵,列向量和为右端向量,条件称为非负约束。一个向量,满足约束条件,称为可行解或可行点,所有可行点的集合称为可行区域,达到目标函数值最大的可行解称为该线性规划的最优解,相应的目标函数值称为最优目标函数值,简称最优值。

我们这里介绍利用Matlab来求解线性规划问题的求解。

在Matlab中有一个专门的函数linprog()来解决这类问题,我们知道,极值有最大和最小两种,但求的极大就是求的极小,因此在Matlab中以求极小为标准形式,函数linprog()的具体格式如下:

X=linprog(f,A,b)

[X,fval,exitflag,ouyput,lamnda]=linprog(f,A,b,Aeq,Beq,LB,UB,X0,options)

这里X是问题的解向量,f是由目标函数的系数构成的向量,A是一个矩阵,b是一个向量,A,b和变量x={x1,x2,…,xn}一起,表示了线性规划中不等式约束条件,A,b是系数矩阵和右端向量。Aeq和Beq表示了线性规划中等式约束条件中的系数矩阵和右端向量。LB和UB是约束变量的下界和上界向量,X0是给定的变量的初始值,options为控制规划过程的参数系列。返回值中fval是优化结束后得到的目标函数值。exitflag=0表示优化结果已经超过了函数的估计值或者已声明的最大迭代次数;exitflag>0表示优化过程中变量收敛于解X,exitflag<0表示不收敛。output有3个分量,iterations表示优化过程的迭代次数,cgiterations表示PCG迭代次数,algorithm表示优化所采用的运算规则。lambda有4个分量,ineqlin是线性不等式约束条件,eqlin是线性等式约束条件,upper是变量的上界约束条件,lower是变量的下界约束条件。它们的返回值分别表示相应的约束条件在约束条件在优化过程中是否有效。

三、实验方法与步骤:

例1:某工厂生产A,B两种产品,所用原料均为甲、乙、丙三种:生产一件产品所需原料和所获利润以及库存原料情况如下所示:

原料甲(公斤)原料乙(公斤)原料丙(公斤)利润(元)产品A8447000产品B68610000库存原料量380300220在该厂只有表中所列库存原料的情况下,如何安排A,B两种产品的生产数量可以获得最大利润?

设生产A产品件,生产B产品件,为所获利润,我们将问题归结为如下的线性规划问题:

s.t.

接着写出Matlab程序如下:

clear

f=-[7000,10000];

A=[8,6;4,8;4,6];

b=[380,300,220];

[X,fval]=linprog(f,A,b)

运行结果为:

Optimization terminated.

X =

40.0000

10.0000

fval =

-3.8000e+005

例2:求解下面的线性规划问题:

s.t.

,,

解决上述问题的Matlab程序为:

Clear

f=-[5,4,6];

A=[1,-2,1;3,2,4;3,2,0];

b=[20,42,30];

LB=[0;0;0];

[X,fval,exitflag,output,lambda]=linprog(f,A,b,[],[],LB)

程序运行的结果为:

Optimization terminated.

X =

0.0000

15.0000

3.0000

fval =

-78.0000

exitflag =

1

output =

iterations: 6

algorithm: 'large-scale: interior point'

cgiterations: 0

message: 'Optimization terminated.'

lambda =

ineqlin: [3x1 double]

eqlin: [0x1 double]

upper: [3x1 double]

lower: [3x1 double]

四、实验总结

在使用linprog()命令时,系统默认

matlab求解线性规划问题的实例代码,用matlab求解线性规划问题.doc相关推荐

  1. Matlab学习卡尔曼滤波的各种实例代码 KF,EKF,UKF,CKF

    Matlab学习卡尔曼滤波的各种实例代码 KF,EKF,UKF,CKF 本人硕士写的,有简单版本的纯m代码,也有进阶学习的Sfunction代码,以及simulink模型代码,代码附有详细的注释编号: ...

  2. matlab 使用svm进行分类含实例代码(适用于二分类和多分类)

    matlab 使用svm进行分类(适用于二分类和多分类 1. 简单二分类 2. 多分类(不调用工具箱) 3.多分类(调用libsvm工具箱) 1. 简单二分类 clear,clc%% 二分类 %训练数 ...

  3. matlab中bp网络盲分离代码,利用matlab实现语音盲分离

    [实例简介] 本文利用了独立变量分析的算法,用 matlab实现了语音信号的盲分离.这在语音识别,以及未来机器人智能化上起着至关重要的作用 [实例截图] [核心代码] icalab └── icala ...

  4. 用matlab做文字水印,3 一个用MATLAB编写的数字水印算法实例

    3 一个用MATLAB编写的数字水印算法实例 为证明MATLAB的高效性与实现简便性,给出在Windows98环境下MATLAB5.3中调试通过的完整源程序. l 嵌入水印 %定义常量size=256 ...

  5. matlab沪深a股量化投资培训班,MATLAB沪深A股量化投资培训

    MATLAB金融数据整理 1.????Matlab文本数据读写 2.????读取网页数据 3.????A股交易数据读取 4.????Matlab?and?Excel?Data?Interconnect ...

  6. MATLAB麻雀搜索算法求解物流配送中心选址问题实例代码

    实例视频: MATLAB麻雀搜索算法求解物流配送中心选址问题优化实例 1.问题描述 根据目前已知所需客户点位置.备选中心位置和客户需求货物的前提下,指定选址位置,合理设计配送路线,使运输成本趋于最小化 ...

  7. 用matlab解方程组例子,Matlab求解超定方程组实例

    Matlab求解超定方程组实例 对于超定方程组,特别是非线性方程组,可以用Matlab基于最小二乘算法来进行求解,例如,求解下列方程组: 一个三个未知数,九个方程的非线性方程组: cos(x3)*si ...

  8. 【优化布局】基于差分进化算法求解电力系统负荷分配中的应用问题matlab代码

    1 简介 差分进化算法在处理连续域.非凸.不确定性和全局优化问题时具有优势,已在包括电力系统最优潮流在内的诸多领域得到广泛应用.电力系统最优潮流是一个复杂的非线性优化问题,要求在满足特定的电力系统运行 ...

  9. 龙格库塔法解微分方程组的matlab程序,MATLAB实例源码教程:龙格库塔法求解微分方程组源代码实例.doc...

    MATLAB实例源码教程:龙格库塔法求解微分方程组源代码实例.doc MATLAB实例源码教程龙格库塔法求解微分方程组源代码实例题目用经典 Runge-Kutta方法求下列一阶微分方程组的近似解y1 ...

  10. matlab ode45求解齿轮动力学,ode45求解多自由度动力学方程实例.doc

    ode45求解多自由度动力学方程实例 Ode45函数调用形式如下:[T,Y]=ode45(odefun,tspan,y0)相关参数介绍如下:参数名称参数说明odefun用于存放待求解的方程的m文件名, ...

最新文章

  1. mysql数据库三级分类_5.在 MySQL数据库中,以下数据库对象与数据库三级模式对应关系正确的是?...
  2. spring中@Value的注解解析
  3. 阅读redis源代码的一些体会
  4. 企业服务器虚拟化方案文档,服务器虚拟化在企业中的应用
  5. mysql插入数据与删除重复记录的几个例子(收藏)
  6. 登录用户Eclipse中SVN访问用户的变更办法
  7. 正则表达式 之 python3
  8. Git笔记(34) 调试
  9. 服务器文件绝对路径,服务器文件绝对路径
  10. sql int 比较_分享 21 个编写 SQL 的好习惯
  11. 你是没有可能把主业做得风雨飘摇,却把副业做得风生水起的
  12. ad9原理图转到orcad capture16.5
  13. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二十四:SD卡模块
  14. 《赖氏经典英语语法》第五集
  15. 深圳入户体检报告查询
  16. go get golang.org/x/tools 失败解决
  17. MAC下终端走代理的几种方法
  18. 疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)----(十一)看门狗
  19. win10下prcharm安装(及注册码免费获取)
  20. 用Python一键生成微信好友头像墙

热门文章

  1. 设计模式-工厂方法的应用场景及Java中对工厂方法的应用
  2. php圆的面积计算公式,圆的面积怎么计算如何求解
  3. 三箭暴雷造清算 回顾三箭资本Zhu Su黑以太坊奶自己投资项目的黑历史
  4. H264编码-码率控制原理以及JM代码分析
  5. SqlServer执行计划
  6. My Sixth-Third Page - 爬楼梯 - By Nicolas
  7. Python代码调试
  8. Catching Both Gray and Black Swans: Open-set Supervised Anomaly Detection(捕捉灰天鹅和黑天鹅:开放集监督异常检测)
  9. stm32 iap升级
  10. python汉语词频统计_Python之四大名著汉字词频统计