文档库 最新最全的文档下载
当前位置:文档库 › 数学建模 matlab求解线性规划实验报告

数学建模 matlab求解线性规划实验报告

数学建模 matlab求解线性规划实验报告
数学建模 matlab求解线性规划实验报告

实验三 线性规划

程序: linprog

c=[-0.4 -0.28 -0.32 -0.72 -0.64 -0.6];

A=[0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.08]; b=[850;700;100;900]; Aeq=[]; beq=[];

vlb=[0;0;0;0;0;0]; vub=[];

[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)

Exam5:

function f=fun3(x);

f=-x(1)-2*x(2)+(1/2)*x(1)^2+(1/2)*x(2)^2

实验目的

2、掌握用数学软件包求解线性规划问题。

1、了解线性规划的基本内容。

例1 max 6543216.064.072.032.028.04.0x x x x x x z +++++= 85003.003.003.001.001.001.0..654321≤+++++x x x x x x t s 70005.002.041≤+x x 10005.002.052≤+x x 90008.003.063≤+x x 6,2,10 =≥j x j

x0=[1;1];

A=[2 3 ;1 4]; b=[6;5]; Aeq=[];beq=[]; VLB=[0;0]; VUB=[];

[x,fval]=fmincon('fun3',x0,A,b,Aeq,beq,VLB,VUB)

书 求下列非线性规划

2221232212322

1232

12223123min 8020

..2023,,0x x x x x x x x x s t x x x x x x x +++?-+≥?++≤??--+=??+=?

?≥?

在Matlab 2013软件中输入如下程序: (i )编写M 文件fun1.m 定义目标函数

function f=fun1(x); f=sum(x.^2)+8;

(ii )编写M 文件fun2.m 定义非线性约束条件 function [g,h]=fun2(x); g=[-x(1)^2+x(2)-x(3)^2

x(1)+x(2)^2+x(3)^3-20]; %非线性不等式约束 h=[-x(1)-x(2)^2+2

x(2)+2*x(3)^2-3]; %非线性等式约束 (iii )编写主程序文件example2.m 如下:

options=optimset('largescale','off');

[x,y]=fmincon('fun1',rand(3,1),[],[],[],[],zeros(3,1),[], ... 'fun2', options)

就可以求得当1230.5522 1.2033,,0.9478x x x ===时,最小值y =10.6511。

4. 选修课的策略

决策目标为选修的课程总数最少,即 921min

x x x +++

约束条件:

(1) 满足课程要求:(至少2门数学课程,3门运筹学课程和2门计算机课程)

2

32

97649865354321≥+++≥++++≥++++x x x x x x x x x x x x x x

(2) 先修课程要求:

(a) 数据结构的先修课程为计算机编程:1174=?=x x 转换为:74x x ≤ (b) 计算机模拟的先修课程为计算机编程:76x x ≤ (c) 预测理论的先修课程为应用统计:58x x ≤

(d) 最优化方法的先修课程为微积分和线性代数:2313,x x x x ≤≤,或者转化为:

02321≤+--x x x

(e) 应用统计的先修课程为微积分和线性代数:2515,x x x x ≤≤,或者转化为:

02521≤+--x x x

(f) 数学实验的先修课程为微积分和线性代数:2919,x x x x ≤≤,或者转化为:

02921≤+--x x x

(3) 0-1限制:1,0=i x (可以转化为整数规划,10≤≤i x )

四、模型求解:

在Matlab 软件中输入如下程序:

c=[1;1;1;1;1;1;1;1;1]; A=[-1 -1 -1 -1 -1 0 0 0 0; 0 0 -1 0 -1 -1 0 -1 -1; 0 0 0 -1 0 -1 -1 0 -1; 0 0 0 1 0 0 -1 0 0; 0 0 0 0 0 1 -1 0 0; 0 0 0 0 -1 0 0 1 0; -1 -1 2 0 0 0 0 0 0; -1 -1 0 0 2 0 0 0 0; -1 -1 0 0 0 0 0 0 2]; b=[-2;-3;-2;0;0;0;0;0;0]; [x,Fval]=bintprog(c,A,b);

计算得到该问题的解为(1,1,1,0,0,1,1,0,1),即选修的课程为微积分、线性代数、最优化方法、计算机模拟、计算机编程和数学实验,总学分为21。

练习:1.

121212112max 726450

128480..31000,0

x x x x x x s t x x x ++≤??+≤??

≤??≥≥?

2.

书 解线性规划问题

212min x x f --=

???????=≥=++=++-=++5

,4,3,2,1,0212605..521421321i x x x x x x x x x x t s i

3. 书 某市有甲、乙、丙、丁四个居民区,自来水由A 、B 、C 由三个水库供应。四个区每天必须的基本生活用水分别为30、70、10、10千吨,但三个水库每天最多只能分别供应50、60、50千吨自来水。由于地理位置的差别,自来水公司从各水库向各区送水所付出的引水 管理费不同(如表4-1,其中C 水库与丁区间无输水管道),其它管理费均为450元/千吨。各区用户每千吨收费900元。此外,各区用户都向公司申请了额外用水量,分别为每天50、70、20、40千吨。问公司应如何分配供水量,才能获利最多?

问题假设

输送到各区的自来水只要在基本用水与额外用水量以内,各区即全额付费。 模型建立 设A 、

B 、

C 各水库向甲、乙、丙、丁四个居民区的供水量如下,

则公司从A 水库的获利为:

112341234

900()(160450)(130450)(220450)(170450)u x x x x x x x x =+++-+-+-+-+

公司从B 水库的获利为:

432143212)450150()450190()450130()450140()(900y y y y y y y y u +-+-+-+-+++=

公司从C 水库的获利为:

3213213)450220()450200()450190()(900z z z z z z u +-+-+-++=

公司的总获利为:

3211u u u u ++=

各区每天的供水量: 甲区供水量为:

503030111+≤++≤z y x

乙区供水量为:

707070222+≤++≤z y x

丙区供水量为:

201010333+≤++≤z y x

丁区供水量为:

40101044+≤+≤y x

水库每天供水量的限定: A 水库:

4

i 1

50i

x

==∑; B 水库:4

i 1

60i y ==∑; C 水库:3

i 1

50i z ==∑

于是建立数学模型如下:

12341234123111

222333444

14

13

1

290320230280310320260300260250220303050

707070101020

..101040506050

i i i i i

i Max x x x x y y y y z z z x y z x y z x y z s t x y x y z ====++++++++++????

?≤++≤+?

≤++≤+??≤++≤+??

≤+≤+???=???=???=??∑∑∑ 2

用MATLAB解线性规划

用MATLAB 优化工具箱解线性规划 命令:x=linprog (c ,A ,b ) 2、模型: beq AeqX b AX ..min =≤=t s cX z 命令:x=linprog (c ,A ,b ,Aeq,beq ) 注意:若没有不等式:b AX ≤存在,则令A=[ ],b=[ ]. 若没有等式约束, 则令Aeq=[ ], beq=[ ]. 3、模型: VUB X VLB beq AeqX b AX ..min ≤≤=≤=t s cX z 命令:[1] x=linprog (c ,A ,b ,Aeq,beq, VLB ,VUB ) [2] x=linprog (c ,A ,b ,Aeq,beq, VLB ,VUB, X0) 注意:[1] 若没有等式约束, 则令Aeq=[ ], beq=[ ]. [2]其中X0表示初始点 4、命令:[x,fval]=linprog(…) 返回最优解x及x处的目标函数值fval. 例1 max 6543216.064.072.032.028.04.0x x x x x x z +++++= 85003.003.003.001.001.001.0..654321≤+++++x x x x x x t s 70005.002.041≤+x x 10005.002.052≤+x x 90008.003.063≤+x x 6,2,10 =≥j x j 解 编写M 文件小xxgh1.m 如下: c=[-0.4 -0.28 -0.32 -0.72 -0.64 -0.6]; A=[0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.08]; b=[850;700;100;900]; Aeq=[]; beq=[]; vlb=[0;0;0;0;0;0]; vub=[]; [x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub) min z=cX b AX t s ≤..1、模型:

数学建模(Matlab)

数学规划作业(MatLab) 1、某厂向用户提供发动机,合同规定,第一、二、三季度末分别交货40台、60台、80台.每季度的生产费用为()2 =+ f x ax bx (单位:元), 其中x是该季度生产的台数.若交货后有剩余,可用于下季度交货,但需支付存储费,每台每季度c元.已知工厂每季度最大生产能力为100台,第一季度开始时无存货,设a=50、b=0.2、c=4,问:工厂应如何安排生产计划,才能既满足合同又使总费用最低.讨论a、b、c变化对计划的影响,并作出合理的解释. 解: 问题的分析和假设: 分析: 问题的关键在于由于工厂的生产能力足以满足每个季度用户的需求,但是为了使总费用最少,那么利用每个季度生产费用的不同,可用利用上个生产费用低的季度多生产来为下个季度进行准备,前提是本月节省下的费用减去总的发动机存储费用还有剩余,这样生产才有价值,才可能满足合同的同时又能使总费用最低。基本假设:1工厂的生产能力不受外界环境因素影响。2为使总费用最低,又能满足合同要求,各个季度之间的生产数量之间是有联系的。3第一季度开始时无存货。4工厂每季度的生关费用与本季度生产的发动机台数有关。5生产要按定单的数量来进行,生产的数量应和订单的数量相同,以避免生产出无用的机器。 符号规定:X1―――第一季度生产发动机的数量 X2―――第二季度生产发动机的数量

X3―――第三季度生产发动机的数量 建模: 1.三个季度发动机的总的生产量为180台。 2.每个季度的生产量和库存机器的数量之和要大于等于本季度的交货数量。 3.每个月的生产数量要符合工厂的生产能力。 4.将实际问题转化为非线性规划问题,建立非线性规划模型 目标函数 min f(x)=50(x1+x2+x3)+0.2(x12+x22+x32)+4(x1-40)+4(x1+x2-100) 整理,得 min f(x)=50(x1+x2+x3)+0.2(x12+x22+x32)+4(2x1+x2-140) 约束函数s.t x1+x2≥100; x1+x2+x3=180; 40≤x1≤100; 0≤x2≤100; 0≤x3≤100; 求解的Matlab程序代码: M-文件 fun.m: function f=fun (x); f=50*(x(1)+x(2)+x(3))+0.2*(x(1)^2+x(2)^2+x(3)^2)+4*(2*x(1) +x(2)-140)主程序fxxgh.m:

MATLAB及在数学建模中的应用

第1讲MATLAB及 在数学建模中的应用 ? MatLab简介及基本运算?常用计算方法 ?应用实例

一、 MatLab简介及基本运算 1.1 MatLab简介 1.2 MatLab界面 1.3 MatLab基本数学运算 1.4 MatLab绘图

1.1 MatLab简介?MATLAB名字由MATrix和 LABoratory 两词组成。20世纪七十年代后期, 美国新墨西哥大学计算机科学系主任Cleve Moler教授为减轻学生编程负担,为学生设计了一组调用LINPACK和EISPACK库程序的“通俗易用”的接口,此即用FORTRAN编写的萌芽状态的MATLAB。

?经几年的校际流传,在Little的推动下,由Little、Moler、Steve Bangert合作,于1984年成立了MathWorks公司,并把MATLAB正式推向市场。从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。

?1997年春,MATLAB5.0版问世,紧接着是5.1、5.2、5.3、6.0、6.1、6.5、7.0版。现今的MATLAB拥有更丰富的数据类型和结构、更友善的面向对象、更加快速精良的图形可视、更广博的数学和数据分析资源、更多的应用开发工具。 ?20世纪九十年代的时候,MATLAB已经成为国际控制界公认的标准计算软件。

?MATLAB具有用法简易、可灵活运用、程式结构强又兼具延展性。以下为其几个特色: ①可靠的数值运算和符号计算。在MATLAB环境中,有超过500种数学、统计、科学及工程方面的函 数可使用。 ②强大的绘图功能。 MATLAB可以绘制各种图形,包括二维和三维图形。 ③简单易学的语言体系。 ④为数众多的应用工具箱。

数学建模(教案)第一章--线性规划

数学建模 第一章 线性规划 §1 线性规划 在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济效益的问题。此类问题构成了运筹学的一个重要分支—数学规划,而线性规划(Linear Programming 简记LP)则是数学规划的一个重要分支。自从1947年G. B. Dantzig 提出求解线性规划的单纯形方法以来,线性规划在理论上趋向成熟,在实用中日益广泛与深入。特别是在计算机能处理成千上万个约束条件和决策变量的线性规划问题之后,线性规划的适用领域更为广泛了,已成为现代管理中经常采用的基本方法之一。 1.1 线性规划的实例与定义 例1 某机床厂生产甲、乙两种机床,每台销售后的利润分别为4000元与3000元。生产甲机床需用B A 、机器加工,加工时间分别为每台2小时和1小时;生产乙机床需用C B A 、、三种机器加工,加工时间为每台各一小时。若每天可用于加工的机器时数分别为A 机器10小时、B 机器8小时和C 机器7小时,问该厂应生产甲、乙机床各几台,才能使总利润最大? 上述问题的数学模型:设该厂生产1x 台甲机床和2x 乙机床时总利润最大,则21,x x 应满足 (目标函数) 2134m ax x x z += (1) s.t. ( 约 束 条 件 ) ?????? ?≥≤≤+≤+0 ,781022122 121x x x x x x x (2) 这里变量21,x x 称之为决策变量,(1)式被称为问题的目标函数,(2)中的几个不等式是问题的约束条件,记为s.t.(即subject to)。

上述即为一规划问题数学模型的三个要素。由于上面的目标函数及约束条件均为线性函数,故被称为线性规划问题。 总之,线性规划问题是在一组线性约束条件的限制下,求一线性目标函数最大或最小的问题。 在解决实际问题时,把问题归结成一个线性规划数学模型是很重要的一步,但往往也是困难的一步,模型建立得是否恰当,直接影响到求解。而选取适当的决策变量,是我们建立有效模型的关键之一。 1.2 线性规划的Matlab 标准形式 线性规划的目标函数可以是求最大值,也可以是求最小值,约束条件的不等号可以是小于号也可以是大于号。为了避免这种形式多样性带来的不便,Matlab 中规定线性规划的标准形式为 b Ax x c x T ≤ that such min 其中c 和x 为n 维列向量,b 为m 维列向量,A 为n m ?矩阵。 例如线性规划 b Ax x c x T ≥ that such max 的Matlab 标准型为 b Ax x c x T -≤-- that such min 1.3 线性规划问题的解的概念 一般线性规划问题的标准型为 ∑==n j j j x c z 1min (3) ∑==≤n j i j ij m i b x a 1,,2,1 s.t.Λ (4) 可行解 满足约束条件(4)的解),,,(21n x x x x Λ=,称为线性规划问题的可行解,而使目标函数(3)达到最小值的可行解叫最优解。

用matlab求解线性规划问题

一、实验目的: 了解Matlab 的优化工具箱,能利用Matlab 求解线性规划问题。 二、实验内容: 线性规划的数学模型有各种不同的形式,其一般形式可以写为: 目标函数: n n x f x f x f z +++= 2211m in 约束条件: s n sn s s n n b x a x a x a b x a x a x a ≤+++≤+++ 221 11 1212111 s n tn t t n n d x c x c x c d x c x c x c =+++=+++ 221 11 1212111 0,,,21≥n x x x 这里 n n x f x f x f z +++= 2211称为目标函数,j f 称为价值系数,T n f f f f ),,,(21 =称为价值向量,j x 为求解的变量,由系数ij a 组成的矩阵 ??????????=mn m n a a a a A 1111 称为不等式约束矩阵,由系数ij c 组成的矩阵 ??????????=sn s n c c c c C 1111 称为等式约束矩阵,列向量 T n b b b b ),,,(21 =和T n d d d d ),,,(21 =为右端向量,条件0≥j x 称为非负约束。一个向量T n x x x x ),,,(21 =,满足约束条件,称为可行解或可行点,所有可行点的集合称为 可行区域,达到目标函数值最大的可行解称为该线性规划的最优解,相应的目标函数值称为最优目标函数值,简称最优值。 我们这里介绍利用Matlab 来求解线性规划问题的求解。 在Matlab 中有一个专门的函数linprog()来解决这类问题,我们知道,极值有最大和最小两种,但求z 的极大就是求z -的极小,因此在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个分量,

数学建模线性规划

线性规划 1.简介: 线性规划是运筹学中研究较早、发展较快、应用广泛、方法较成熟的一个重要分支,它是辅助人们进行科学管理的一种数学方法.在经济管理、交通运输、工农业生产等经济活动中,提高经济效果是人们不可缺少的要求,而提高经济效果一般通过两种途径:一是技术方面的改进,例如改善生产工艺,使用新设备和新型原材料.二是生产组织与计划的改进,即合理安排人力物力资源. 线性规划所研究的是:在一定条件下,合理安排人力物力等资源,使经济效果达到最好.规划问题。一般地,求线性目标函数在线性约束条件下的最大值或最小值的问题,统称为线性线性约束条件的解叫做可行解,由所有可行解组成的集合叫做可行域。 (x)都是线性函数,则该模型称为在优化模型中,如果目标函数f(x)和约束条件中的g i 线性规划。 2.线性规划的3个基本要素 (1)决策变量 (2)目标函数f(x) (x)≤0称为约束条件) (3)约束条件(g i 3.建立线性规划的模型 (1)找出待定的未知变量(决策变量),并用袋鼠符号表示他们。 (2)找出问题中所有的限制或者约束,写出未知变量的线性方程或线性不等式。

(3)找到模型的目标或判据,写成决策变量的线性函数,以便求出其最大值或最小值。以下题为例,来了解一下如何将线性规划用与实际的解题与生活中。 生产计划问题 某工厂生产甲乙两种产品,每单位产品消耗和获得的利润如表 试拟订生产计划,使该厂获得利润最大 解答:根据解题的三个基本步骤 (1)找出未知变量,用符号表示: 设甲乙两种产品的生产量分别为x 1与x 2 吨,利润为z万元。 (2)确定约束条件: 在这道题目当中约束条件都分别为:钢材,电力,工作日以及生产量不能为负的限制 钢材:9x 1+5 x 2 ≤360, 电力:4x 1+5 x 2 ≤200, 工作日:3x 1+10 x 2 ≤300, x 1≥0 ,x 2 ≥0, (3)确定目标函数: Z=7x 1+12 x 2

数学建模matlab例题参考及练习

数学实验与数学建模 实验报告 学院: 专业班级: 姓名: 学号: 完成时间:年月日

承 诺 书 本人承诺所呈交的数学实验与数学建模作业都是本人通过学习自行进行编程独立完成,所有结果都通过上机验证,无转载或抄袭他人,也未经他人转载或抄袭。若承诺不实,本人愿意承担一切责任。 承诺人: 年 月 日 数学实验学习体会 (每个人必须要写字数1200字以上,占总成绩的20%) 练习1 一元函数的图形 1. 画出x y arcsin =的图象. 2. 画出x y sec =在],0[π之间的图象. 3. 在同一坐标系中画出x y =,2x y =,3 x y = ,3x y =,x y =的图象. 4. 画出3 2 3 2)1()1()(x x x f + +-=的图象,并根据图象特点指出函数)(x f 的奇偶性. 5. 画出)2ln(1++=x y 及其反函数的图象. 6. 画出3 21+=x y 及其反函数的图象.

练习2 函数极限 1.计算下列函数的极限. (1) x x x 4 cos 1 2 sin 1 lim 4 - + π → . 程序: sym x; f=(1+sin(2*x))/(1-cos(4*x)); limit(f,x,pi/4) 运行结果: lx21 ans = 1 (2). 程序: sym x; f=(1+cos(x))^(3*sec(x)); limit(f,x,pi/2) 运行结果: lx22 ans = exp(3) (3) 2 2 ) 2 ( sin ln lim x x x - π π → . 程序: sym x; f=log(sin(x))/(pi-2*x)^2; limit(f,x,pi/2) 运行结果: lx23 ans = -1/8 (4) 2 1 2 lim x x e x →. 程序: x x x sec 3 2 ) cos 1( lim+ π →

运用Matlab进行线性规划求解(实例)

线性规划 线性规划是处理线性目标函数和线性约束的一种较为成熟的方法,目前已经广泛应用于军事、经济、工业、农业、教育、商业和社会科学等许多方面。 8.2.1 基本数学原理 线性规划问题的标准形式是: ????? ??????≥=+++=+++=++++++=0,,,min 21221122222121112 121112211n m n mn m m n n n n n n x x x b x a x a x a b x a x a x a b x a x a x a x c x c x c z 或 ???? ?????=≥===∑∑==n j x m i b x a x c z j n j i j ij n j j j ,,2,1,0,,2,1,min 1 1 写成矩阵形式为: ?? ???≥==O X b AX CX z min 线性规划的标准形式要求使目标函数最小化,约束条件取等式,变量b 非负。不符合这几个条件的线性模型可以转化成标准形式。 MATLAB 采用投影法求解线性规划问题,该方法是单纯形法的变种。 8.2.2 有关函数介绍 在MATLAB 工具箱中,可用linprog 函数求解线性规划问题。 linprog 函数的调用格式如下: ●x=linprog(f,A,b):求解问题minf'*x ,约束条件为A*x<=b 。 ●x=linprog(f,A,b,Aeq,beq):求解上面的问题,但增加等式约束,即Aeq*x=beq 。若没有不等式约束,则令A=[ ],b=[ ]。 ●x=linprog(f,A,b,Aeq,beq,lb,ub):定义设计x 的下界lb 和上界ub ,使得x 始终在该范围内。若没有等式约束,令Aeq=[ ],beq=[ ]。 ●x=linprog(f,A,b,Aeq,beq,lb,ub,x0):设置初值为x0。该选项只适用于中型问题,默认时大型算法将忽略初值。 ●x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options):用options 指定的优化参数进行最小化。 ●[x,fval]=linprog(…):返回解x 处的目标函数值fval 。 ●[x,lambda,exitflag]=linprog(…):返回exitflag 值,描述函数计算的退出条件。 ●[x,lambda,exitflag,output]=linprog(…):返回包含优化信息的输出参数output 。 ●[x,fval,exitflag,output,lambda]=linprog(…):将解x 处的拉格朗日乘子返回到lambda 参数中。

数学建模章绍辉版第四章作业

第四章作业 第二题: 针对严重的交通情况,国家质量监督检验检疫局发布的国家标准,车辆驾驶人员血液中的酒精含量大于或等于20mg/100ml,小于80mg/100ml 为饮酒驾车,血液中的酒精含量大于或等于80mg/100ml 的为醉酒驾车。 下面分别考虑大李在很短时间内和较长时间内(如2个小时)喝了三瓶啤酒,多长时间内驾车就会违反新的国家标准。 1、 问题假设 大李在短时间内喝下三瓶啤酒后,酒精先从吸收室(肠胃)吸收进中心室(血液和体液),然后从中心室向体外排除,忽略喝酒的时间,根据生理学知识,假设 (1) 吸收室在初始时刻t=0时,酒精量立即为 32 D ;在任意时刻,酒精从吸收室吸收进中心室的速率(吸收室在单位时间内酒精含量的减少量)与吸收室的酒精含量成正比,比例系数为1k ; (2) 中心室的容积V 保持不变;在初始时刻t=0时,中心室的酒精含量为0;在任意时 刻,酒精从中心室向体外排除的速率(中心室在单位时间内酒精含量的减少量)与 中心室的酒精含量成正比,比例系数为2k ; (3) 在大李适度饮酒没有酒精中毒的前提下,假设1k 和2k 都是常量,与饮酒量无关。 2、 符号说明 酒精量是指纯酒精的质量,单位是毫克; 酒精含量是指纯酒精的浓度,单位是毫克/百毫升; ~t 时刻(小时) ; ()~x t 在时刻t 吸收室(肠胃)内的酒精量(毫克) ; 0~D 两瓶酒的酒精量(毫克); (t)~c 在时刻t 吸收室(血液和体液)的酒精含量(毫克/百毫升) ; 2()~c t 在时刻t 中心室(血液和体液)的酒精含量(毫克/百毫升); ~V 中心室的容积(百毫升) ; 1~k 酒精从吸收室吸收进中心室的速率系数(假设其为常数2.0079); 2~k 酒精从中心室向体外排除的速率系数(假设其为常数0.1855); 3~k 在短时间喝下三瓶酒的假设下是指短时间喝下的三瓶酒的酒精总量除以中心室体积, 即03/2D V ;而在较长时间内(2小时内)喝下三瓶酒的假设下就特指03/4D V .

多目标线性规划的若干解法及MATLAB实现

多目标线性规划的若干解法及MATLAB 实现 一.多目标线性规划模型 多目标线性规划有着两个和两个以上的目标函数,且目标函数和约束条件全是线性函 数,其数学模型表示为: 11111221221122221122max n n n n r r r rn n z c x c x c x z c x c x c x z c x c x c x =+++??=+++?? ??=+++? (1) 约束条件为: 1111221121122222112212,,,0 n n n n m m mn n m n a x a x a x b a x a x a x b a x a x a x b x x x +++≤??+++≤?? ??+++≤?≥?? (2) 若(1)式中只有一个1122i i i in n z c x c x c x =+++ ,则该问题为典型的单目标线性规划。我们记:()ij m n A a ?=,()ij r n C c ?=,12(,,,)T m b b b b = ,12(,,,)T n x x x x = , 12(,,,)T r Z Z Z Z = . 则上述多目标线性规划可用矩阵形式表示为: max Z Cx = 约束条件:0 Ax b x ≤?? ≥? (3) 二.MATLAB 优化工具箱常用函数[3] 在MA TLAB 软件中,有几个专门求解最优化问题的函数,如求线性规划问题的linprog 、求有约束非线性函数的fmincon 、求最大最小化问题的fminimax 、求多目标达到问题的fgoalattain 等,它们的调用形式分别为: ①.[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub) f 为目标函数系数,A,b 为不等式约束的系数, Aeq,beq 为等式约束系数, lb,ub 为x 的下 限和上限, fval 求解的x 所对应的值。 算法原理:单纯形法的改进方法投影法 ②.[x,fval ]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub ) fun 为目标函数的M 函数, x0为初值,A,b 为不等式约束的系数, Aeq,beq 为等式约束

运用Matlab进行线性规划求解实例

8.2 线性规划 线性规划是处理线性目标函数和线性约束的一种较为成熟的方法,目前已经广泛应用于军事、经济、工业、农业、教育、商业和社会科学等许多方面。 8.2.1 基本数学原理 线性规划问题的标准形式是: ????? ??????≥=+++=+++=++++++=0,,,min 21221122222121112 121112211n m n mn m m n n n n n n x x x b x a x a x a b x a x a x a b x a x a x a x c x c x c z ΛΛΛΛΛΛΛΛΛΛΛΛΛΛΛΛΛ 或 ???? ?????=≥===∑∑==n j x m i b x a x c z j n j i j ij n j j j ,,2,1,0,,2,1,min 1 1ΛΛ 写成矩阵形式为: ?? ???≥==O X b AX CX z min 线性规划的标准形式要求使目标函数最小化,约束条件取等式,变量b 非负。不符合这几个条件的线性模型可以转化成标准形式。 MATLAB 采用投影法求解线性规划问题,该方法是单纯形法的变种。 8.2.2 有关函数介绍 在MATLAB 工具箱中,可用linprog 函数求解线性规划问题。 linprog 函数的调用格式如下: ●x=linprog(f,A,b):求解问题minf'*x ,约束条件为A*x<=b 。 ●x=linprog(f,A,b,Aeq,beq):求解上面的问题,但增加等式约束,即Aeq*x=beq 。若没有不等式约束,则令A=[ ],b=[ ]。 ●x=linprog(f,A,b,Aeq,beq,lb,ub):定义设计x 的下界lb 和上界ub ,使得x 始终在该范围内。若没有等式约束,令Aeq=[ ],beq=[ ]。 ●x=linprog(f,A,b,Aeq,beq,lb,ub,x0):设置初值为x0。该选项只适用于中型问题,默认时大型算法将忽略初值。 ●x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options):用options 指定的优化参数进行最小化。 ●[x,fval]=linprog(…):返回解x 处的目标函数值fval 。 ●[x,lambda,exitflag]=linpro g(…):返回exitflag 值,描述函数计算的退出条件。 ●[x,lambda,exitflag,output]=linprog(…):返回包含优化信息的输出参数output 。 ●[x,fval,exitflag,output,lambda]=linprog(…):将解x 处的拉格朗日乘子返回到

matlab在数学建模中的应用

Matlab在数学建模中的应用 数学建模是通过对实际问题的抽象和简化,引入一些数学符号、变量和参数,用数学语言和方法建立变量参数间的内在关系,得出一个可以近似刻画实际问题的数学模型,进而对其进行求解、模拟、分析检验的过程。它大致分为模型准备、模型假设、模型构成、模型求解、模型分析、模型检验及应用等步骤。这一过程往往需要对大量的数据进行分析、处理、加工,建立和求解复杂的数学模型,这些都是手工计算难以完成的,往往在计算机上实现。在目前用于数学建模的软件中,matlab 强大的数值计算、绘图以及多样化的工具箱功能,能够快捷、高效地解决数学建模所涉及的众多领域的问题,倍受数学建模者的青睐。 1 Matlab在数学建模中的应用 下面将联系数学建模的几个环节,结合部分实例,介绍matlab 在数学建模中的应用。 1.1 模型准备阶段 模型准备阶段往往需要对问题中的给出的大量数据或图表等进行分析,此时matlab的数据处理功能以及绘图功能都能得到很好的应用。 1.1.1 确定变量间关系 例1 已知某地连续20年的实际投资额、国民生产总值、物价指数的统计数据(见表),由这些数据建立一个投资额模型,根据对未来国民生产总值及物价指数的估计,预测未来的投资额。

表1 实际投资额、国民生产总值、物价指数的统计表 记该地区第t年的投资为z(t),国民生产总值为x(t),物价指数为y(t)。 赋值: z=[90.9 97.4 113.5 125.7 122.8 133.3 149.3 144.2 166.4 195 229.8 228.7 206.1 257.9 324.1 386.6 423 401.9 474.9 424.5]' x=[596.7 637.7 691.1 756 799 873.4 944 992.7 1077.6 1185.9 1326.4 1434.2 1549.2 1718 1918.3 2163.9 2417.8 2631.6 2954.7 3073]' y=[0.7167 0.7277 0.7436 0.7676 0.7906 0.8254 0.8679 0.9145 0.9601 1 1.0575 1.1508 1.2579 1.3234 1.4005 1.5042 1.6342 1.7842 1.9514 2.0688]' 先观察x与z之间,y与z之间的散点图 plot(x,z,'*') plot(y,z,'*') 由散点图可以看出,投资额和国民生产总值与物价指数都近似呈

matlab数学建模实例

第四周 3. 中的三个根。 ,在求8] [0,041.76938.7911.1-)(2 3=-+=x x x x f function y=mj() for x0=0:0.01:8 x1=x0^3-11.1*x0^2+38.79*x0-41.769; if (abs(x1)<1.0e-8) x0 end end 4.分别用简单迭代法、埃特金法、牛顿法求解方程,并比较收敛性与收敛速度(ε分别取10-3、10-5、10-8)。 简单迭代法: function y=jddd(x0) x1=(20+10*x0-2*x0^2-x0^3)/20; k=1; while (abs(x1-x0)>=1.0e-3) x0=x1; x1=(20+10*x0-2*x0^2-x0^3)/20;k=k+1; end x1 k 埃特金法: function y=etj(x0) x1=(20-2*x0^2-x0^3)/10; x2=(20-2*x1^2-x1^3)/10; x3=x2-(x2-x1)^2/(x2-2*x1+x0); k=1; while (abs(x3-x0)>=1.0e-3) x0=x3; x1=(20-2*x0^2-x0^3)/10; x2=(20-2*x1^2-x1^3)/10; x3=x2-(x2-x1)^2/(x2-2*x1+x0);k=k+1; end 2 ,020102)(023==-++=x x x x x f

x3 k 牛顿法: function y=newton(x0) x1=x0-fc(x0)/df(x0); k=1; while (abs(x1-x0)>=1.0e-3) x0=x1; x1=x0-fc(x0)/df(x0);k=k+1; end x1 k function y=fc(x) y=x^3+2*x^2+10*x-20; function y=df(x) y=3*x^2+4*x+10; 第六周 1.解例6-4(p77)的方程组,分别采用消去法(矩阵分解)、Jacobi迭代法、Seidel迭代法、松弛法求解,并比较收敛速度。 消去法: x=a\d 或 [L,U]=lu(a); x=inv(U)inv(L)d Jacobi迭代法: function s=jacobi(a,d,x0) D=diag(diag(a)); U=-triu(a,1); L=-tril(a,-1); C=inv(D); B=C*(L+U); G=C*d; s=B*x0+G; n=1; while norm(s-x0)>=1.0e-8 x0=s; s=B*x0+G;

用MATLAB求解规划问题

§15. 利用Matlab求解线性规划问题 线性规划是一种优化方法,Matlab优化工具箱中有现成函数linprog对如下式描述的LP问题求解: % min f'x % s.t .(约束条件):Ax<=b % (等式约束条件):Aeqx=beq % lb<=x<=ub linprog函数的调用格式如下: x=linprog(f,A,b) x=linprog(f,A,b,Aeq,beq) x=linprog(f,A,b,Aeq,beq,lb,ub) x=linprog(f,A,b,Aeq,beq,lb,ub,x0) x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options) [x,fval]=linprog(…) [x, fval, exitflag]=linprog(…) [x, fval, exitflag, output]=linprog(…) [x, fval, exitflag, output, lambda]=linprog(…) 其中: x=linprog(f,A,b)返回值x为最优解向量。 x=linprog(f,A,b,Aeq,beq) 作有等式约束的问题。若没有不等式约束,则令 111

A=[ ]、b=[ ] 。 x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options) 中lb ,ub为变量x的下界和上界,x0为初值点,options为指定优化参数进行最小化。 Options的参数描述: Display显示水平。选择’off’ 不显示输出;选择’I ter’显示每一步迭代过程的输出;选择’final’ 显示最终结果。 MaxFunEvals 函数评价的最大允许次数 Maxiter 最大允许迭代次数 TolX x处的终止容限 [x,fval]=linprog(…) 左端fval 返回解x处的目标函数值。 [x,fval,exitflag,output,lambda]=linprog(f,A,b, Aeq,beq,lb,ub,x0) 的输出部分: exitflag描述函数计算的退出条件:若为正值,表示目标函数收敛于解x 处;若为负值,表示目标函数不收敛;若为零值,表示已经达到函数评价或迭代的最大次数。 output 返回优化信息:output.iterations表示迭代次数;output.algorithm表示所采用的算法;outprt.funcCount表示函数评价次数。 lambda返回x处的拉格朗日乘子。它有以下属性: lambda.lower-lambda的下界; lambda.upper-lambda的上界; lambda.ineqlin-lambda的线性不等式; lambda.eqlin-lambda的线性等式。 112

数学建模-线性规划

-1- 第一章线性规划 §1 线性规划 在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济 效益的问题。此类问题构成了运筹学的一个重要分支—数学规划,而线性规划(Linear Programming 简记LP)则是数学规划的一个重要分支。自从1947 年G. B. Dantzig 提出 求解线性规划的单纯形方法以来,线性规划在理论上趋向成熟,在实用中日益广泛与深入。特别是在计算机能处理成千上万个约束条件和决策变量的线性规划问题之后,线性 规划的适用领域更为广泛了,已成为现代管理中经常采用的基本方法之一。 1.1 线性规划的实例与定义 例1 某机床厂生产甲、乙两种机床,每台销售后的利润分别为4000 元与3000 元。 生产甲机床需用A、B机器加工,加工时间分别为每台2 小时和1 小时;生产乙机床 需用A、B、C三种机器加工,加工时间为每台各一小时。若每天可用于加工的机器时 数分别为A 机器10 小时、B 机器8 小时和C 机器7 小时,问该厂应生产甲、乙机床各几台,才能使总利润最大? 上述问题的数学模型:设该厂生产1 x 台甲机床和2 x 乙机床时总利润最大,则1 2 x , x 应满足 (目标函数)1 2 max z = 4x + 3x (1) s.t.(约束条件) ?? ? ?? ? ? ≥ ≤ + ≤ + ≤ , 0 7 8 2 10 1 2 2 1 2 1 2 x x x x x x x (2) 这里变量1 2 x , x 称之为决策变量,(1)式被称为问题的目标函数,(2)中的几个不等式是问题的约束条件,记为s.t.(即subject to)。由于上面的目标函数及约束条件均为线性

MATLAB及其在数学建模中的应用

Modeling and Simulation 建模与仿真, 2015, 4(3), 61-71 Published Online August 2015 in Hans. https://www.wendangku.net/doc/2b6774151.html,/journal/mos https://www.wendangku.net/doc/2b6774151.html,/10.12677/mos.2015.43008 Study of MATLAB and Its Application in Mathematical Modeling Chuanqi Qin, Ting Wang, Yuanfeng Jin School of Science, Yanbian University, Yanji Jilin Email: yfkim@https://www.wendangku.net/doc/2b6774151.html, Received: Jul. 22nd, 2015; accepted: Aug. 11th, 2015; published: Aug. 18th, 2015 Copyright ? 2015 by authors and Hans Publishers Inc. This work is licensed under the Creative Commons Attribution International License (CC BY). https://www.wendangku.net/doc/2b6774151.html,/licenses/by/4.0/ Abstract This article firstly introduces the development and the features of MATLAB software. And then the concept and the process of mathematical modeling are explained. After, the article briefly intro-duces some MATLAB solution methods of mathematical modeling problems, giving several in-stances of some methods. At the last of this article, through a relatively complete example, it fo-cuses on the application of MATLAB in mathematical modeling. It has been found that the applica-tion of MATLAB in mathematical modeling can improve the efficiency and quality of mathematical modeling, enrich the means and methods of mathematical modeling, and play a very important role in the teaching of mathematical modeling course. Keywords MATLAB, Mathematical Modeling, Mathematic Model MATLAB及其在数学建模中的应用 秦川棋,王亭,金元峰 延边大学理学院,吉林延吉 Email: yfkim@https://www.wendangku.net/doc/2b6774151.html, 收稿日期:2015年7月22日;录用日期:2015年8月11日;发布日期:2015年8月18日

MATLAB数学建模大作业

******大学 本科实验报告 课程名称:****建模与仿真 设计专题:单服务员的排队模型学生姓名:*** 学号:********** 2012年04月30日

一、实验题目和要求 实验题目: 在某商店有一个售货员,顾客陆续来到,售货员 逐个地接待顾客。当到来的顾客较多时,一部分 顾客便须排队等待,被接待后的顾客便离开商店。 设:a.顾客到来间隔时间服从参数为5分钟的指 数分布;b.对顾客的服务时间服从[3,12]上的均 匀分布;c.排队按先到先服务规则,队长无限制, 并假定一个工作日为8小时,时间以分钟为单位。 要求: 1)模拟1个工作日内完成服务的个数及顾客平均 等待时间t。 2)模拟10个工作日,求出平均每日完成服务的个 数及每日顾客的平均等待时间 3)用柱状图画出10个工作日的平均每日完成的 服务个数及每日顾客的平均等待时间。 二、程序结构图(或功能说明) 文件夹中的m文件在j取1时模拟单工作日的服务 情况,j取1到10时模拟10个工作日的服务情况。 三、程序流程图

NO YES NO i=i+1 计算第i 个顾客离开时的时刻t 计算第i+1个顾客的等待时间s 记录i 值,跳出循环 计算第i+1个顾客的等待时间s 计算第i 个顾客离开时的时刻t 构造顾客间隔时间序列(TjM ) 构造顾客所需服务时间序列(TfM ) t>480 j=1

YES NO YES NO j=j+1 i=i+1 计算第i 个顾客离开时的时刻t 计算第i+1个顾客的等待时间s 记录i 值,跳出循环 计算第i+1个顾客的等待时间s 计算第i 个顾客离开时的时刻t 构造顾客间隔时间序列(TjM ) 构造顾客所需服务时间序列(TfM ) t>480 j=1 j<10

用matlab求解线性规划问题

实验四 用MATLAB 求解线性规划问题 一、实验目的: 了解Matlab 的优化工具箱,能利用Matlab 求解线性规划问题。 二、实验内容: 线性规划的数学模型有各种不同的形式,其一般形式可以写为: 目标函数: n n x f x f x f z +++= 2211mi n 约束条件: s n sn s s n n b x a x a x a b x a x a x a ≤+++≤+++ 221 11 1212111 s n tn t t n n d x c x c x c d x c x c x c =+++=+++ 221 11 1212111 0,,,21≥n x x x 这里 n n x f x f x f z +++= 2211称为目标函数,j f 称为价值系数,T n f f f f ),,,(21 =称为价值向量,j x 为求解的变量,由系数ij a 组成的矩阵 ??????????=mn m n a a a a A 1111 称为不等式约束矩阵,由系数ij c 组成的矩阵 ??????????=sn s n c c c c C 1111 称为等式约束矩阵,列向量 T n b b b b ),,,(21 =和T n d d d d ),,,(21 =为右端向量,条件0≥j x 称为非负约束。一个向量T n x x x x ),,,(21 =,满足约束条件,称为可行解或可行点,所有可行点的集合称为 可行区域,达到目标函数值最大的可行解称为该线性规划的最优解,相应的目标函数值称为最优目标函数值,简称最优值。 我们这里介绍利用Matlab 来求解线性规划问题的求解。 在Matlab 中有一个专门的函数linprog()来解决这类问题,我们知道,极值有最大和最小两种,但求z 的极大就是求z -的极小,因此在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 是线

相关文档
相关文档 最新文档