《用MATLAB求解线性规划课件.ppt》由会员分享,可在线阅读,更多相关《用MATLAB求解线性规划课件.ppt(80页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、线线 性性 规规 划划 Linear ProgrammingPage 2第七章第七章 数学实验数学实验Page 3 一一 用用Mathematica求解线性规划求解线性规划Page 4例例7.1 用用Mathematica求解求解Page 5输入:输入:运行得出结果:运行得出结果:Page 6例例7.2 用用Mathematica求解求解Page 7输入:输入:运行得出结果:运行得出结果:Page 8 二二 用用MATLAB求解线性规划求解线性规划Page 9MATLABMATLAB-MatMatrix rix LabLaborotoryorotory(矩阵实验室矩阵实验室矩阵实验室矩阵实验室
2、)MATLAB简介简介 MATLAB自自19841984年由美国年由美国MathWorks公司研公司研发,现已成为国际公认的最优秀的工程应用开发发,现已成为国际公认的最优秀的工程应用开发环境。环境。它它功能强大、简单易学、编程效率高。功能强大、简单易学、编程效率高。在在欧美,欧美,MATLAB已成为线性代数、自动控制理论、已成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,成为本硕博必图像处理等课程的基本教学工具,成为本硕博必须掌握的基本技能。须掌握的基本技能。Page 10n MATLAB它作为一种编
3、程语言和可视化工具,它作为一种编程语言和可视化工具,可解决可解决工程、科学计算和数学工程、科学计算和数学学科中许多问题。学科中许多问题。n MATLAB建立在建立在向量向量、数组数组和和矩阵矩阵的基础上,的基础上,使用方便,人机界面直观,输出结果可视化。使用方便,人机界面直观,输出结果可视化。n 矩阵矩阵是是MATLAB的核心的核心。MATLAB简介简介Page 11n数值计算和符号计算功能数值计算和符号计算功能 数值计算功能包括:矩阵运算、多项式和有理分数值计算功能包括:矩阵运算、多项式和有理分式运算、数据统计分析、数值积分、优化处理等。式运算、数据统计分析、数值积分、优化处理等。符号计算将
4、得到问题的符号计算将得到问题的解析解析解。解。n图形功能图形功能 可绘制二维、三维乃至四维图形,并可进行图形可绘制二维、三维乃至四维图形,并可进行图形和坐标的标识、视角和光照设计、色彩精细控制等。和坐标的标识、视角和光照设计、色彩精细控制等。MATLAB功能功能Page 12nMATLAB语言语言(1)命命令令行行的的交交互互式式操操作作:用用户户在在MatlabMatlab的的命命令令窗窗口键入一个命令,及时返回结果;口键入一个命令,及时返回结果;(2)程程序序方方式式:可可以以由由Matlab定定义义的的语语言言在在编编辑辑器器中编写程序,运行后返回结果中编写程序,运行后返回结果.Matl
5、ab其其语语法法与与C语语言言极极为为类类似似,但但编编程程效效率率比比C高高且语言简单可读性强、调试容易、调用方便。且语言简单可读性强、调试容易、调用方便。包括有包括有:a.Ma.M文件文件 b.b.函数函数 c.c.绘图绘图 MATLAB功能功能Page 13n应用工具箱应用工具箱基本部分中有数百个内部函数。基本部分中有数百个内部函数。其工具箱分为两大类:其工具箱分为两大类:1)功能性工具箱功能性工具箱 2)学科性工具箱学科性工具箱 功能性工具箱主要用来扩充其符号计算功能、功能性工具箱主要用来扩充其符号计算功能、可视建模仿真功能及文字处理功能等。可视建模仿真功能及文字处理功能等。学科性工具
6、箱专业性比较强,如控制系统工具学科性工具箱专业性比较强,如控制系统工具箱、信号处理工具箱、神经网络工具箱、最优化工箱、信号处理工具箱、神经网络工具箱、最优化工具箱、金融工具箱等,具箱、金融工具箱等,MATLAB功能功能Page 14 主主 要要 内内 容容三、三、举例举例四、四、线线性规划求解性规划求解二、二、数组与矩阵数组与矩阵一一、变量与函数变量与函数Page 15 Matlab是以矩阵为基本运算单元的,它的大部分是以矩阵为基本运算单元的,它的大部分运算或命令都是在矩阵运算的意义下执行的。而构运算或命令都是在矩阵运算的意义下执行的。而构成矩阵的基本单元是数字。成矩阵的基本单元是数字。一、变
7、量与函数一、变量与函数258369Page 161、变量、变量 命名规则命名规则是:是:(1)变量名必须是不含空格的单个词;)变量名必须是不含空格的单个词;(2)变量名区分大小写;)变量名区分大小写;(3)变量名最多不超过)变量名最多不超过19个字符;个字符;(4)变量名必须以字母打头,之后可以是)变量名必须以字母打头,之后可以是 任意字母、数字或下划线,变量名中任意字母、数字或下划线,变量名中 不允许使用标点符号不允许使用标点符号.一、变量与函数一、变量与函数Page 17特殊变量表特殊变量表Page 182、数学运算符号及标点符号、数学运算符号及标点符号一、变量与函数一、变量与函数Page
8、 19注注1MATLAB的的每每条条命命令令语语句句后后,若若为为逗逗号号或或无无标标点点符符号号,则则显显示示命命令令的的结结果果;若若为为分分号号,则则仅仅仅执行赋值操作,不显示运算结果。仅执行赋值操作,不显示运算结果。注注2“%”后面所有文字为注释。后面所有文字为注释。注注3“.”表示续行。如果表达式一行写不下,表示续行。如果表达式一行写不下,可加上续行符并按下回车键继续写。可加上续行符并按下回车键继续写。例如例如 s=1-1/2+1/3-1/4+1/5-1/6+1/7-1/8+1/9-1/10+1/11-1/12;一、变量与函数一、变量与函数Page 203、表达式、表达式:用运算符将
9、有关运算量连接起来的式子。用运算符将有关运算量连接起来的式子。(1)算术运算符算术运算符:(加加)、(减减)、*(乘乘)、/(右除右除)、(左除左除)、(乘方乘方)对于矩阵来说,左除和右除表示两种不同的矩阵运算。对于矩阵来说,左除和右除表示两种不同的矩阵运算。(2)关系关系运算符运算符:(小小于于)、(大大于于)、=(大大于于或或等等于于)、=(等于等于)、=(不等于不等于)(3)逻辑逻辑运算符运算符:&(与与)、|(或或)和和(非非)一、变量与函数一、变量与函数Page 213、数学函数、数学函数Page 22 MATLAB的内部函数是有限的,有时为了研究某的内部函数是有限的,有时为了研究某
10、一个函数的各种性态,需要为一个函数的各种性态,需要为MATLAB定义新函数,定义新函数,为此必须编写函数文件为此必须编写函数文件.函数文件是文件名后缀为函数文件是文件名后缀为M的文件,这类文件的的文件,这类文件的第一行必须是一特殊字符第一行必须是一特殊字符function开始开始,格式为:,格式为:function 因变量名因变量名=函数名(自变量名)函数名(自变量名)函数值的获得必须通过具体的运算实现,并赋给因变函数值的获得必须通过具体的运算实现,并赋给因变量量.4、M文件文件Page 23Matlab的应用程序也以的应用程序也以M文件保存。文件保存。M文件建立方法:文件建立方法:1.在在M
11、atlab中,点中,点:File-New-M-file2.在编辑窗口中输入程序内容在编辑窗口中输入程序内容3.点:点:File-Save,存盘,存盘,M文件名必须与函数名文件名必须与函数名一致。一致。4、M文件文件Page 24例例7.3 定义函数定义函数 f(x1,x2)=100(x2-x12)2+(1-x1)2,计算计算 f(1,2)f(1,2)。function f=fun(x)f=100*(x(2)-x(1)2)2+(1-x(1)2解:解:1.建立建立M文件:文件:fun.mMATLAB(fun)2.可以直接使用函数可以直接使用函数fun.m计算计算 f(1,2),只需在只需在Matl
12、ab命令窗口键入命令:命令窗口键入命令:x=1 2fun(x)返回返回Page 25先建立先建立M文件文件fun2.m定义函数定义函数f(x),),再在再在Matlab命令窗口输入命令窗口输入fun2(2),fun2(0.5),fun2(-1)即可。即可。MATLAB(fun2)返回返回Page 264、赋值语句、赋值语句:a、直接赋值语句:直接赋值语句:(1)赋值变量赋值变量=赋值表达式赋值表达式 (2)赋值表达式赋值表达式 第二种语句形式下,将表达式的值赋给永久变量第二种语句形式下,将表达式的值赋给永久变量ansans。b、函数调用语句:函数调用语句:返回变量列表返回变量列表=函数名(输入
13、变量列表)函数名(输入变量列表)Page 271、创建简单的数组、创建简单的数组二、数组与矩阵二、数组与矩阵x=a b c d e f 创建包含指定元素的行向量创建包含指定元素的行向量x=first:last 创建从创建从first开始,加开始,加1计数,到计数,到last结结束的行向量束的行向量x=first:increment:last 创建从创建从first开始,加开始,加increment计数,计数,last结束的行向量结束的行向量x=linspace(first,last,n)创建从创建从first开始,到开始,到last结结束,有束,有n个元素的行向量个元素的行向量x=a b c
14、d e f 创建包含指定元素的行向量创建包含指定元素的行向量x=first:last 创建从创建从first开始,加开始,加1计数,到计数,到last结结束的行向量束的行向量x=first:increment:last 创建从创建从first开始,加开始,加increment计数,计数,last结束的行向量结束的行向量x=a b c d e f 创建包含指定元素的行向量创建包含指定元素的行向量x=first:last 创建从创建从first开始,加开始,加1计数,到计数,到last结结束的行向量束的行向量x=linspace(first,last,n)创建从创建从first开始,到开始,到la
15、st结结束,有束,有n个元素的行向量个元素的行向量x=first:increment:last 创建从创建从first开始,加开始,加increment计数,计数,last结束的行向量结束的行向量x=a b c d e f 创建包含指定元素的行向量创建包含指定元素的行向量x=first:last 创建从创建从first开始,加开始,加1计数,到计数,到last结结束的行向量束的行向量Page 28 2、数组元素的访问数组元素的访问(3)直接使用元素编址序号直接使用元素编址序号:x(a b c d)表示提取表示提取数组数组x的第的第a、b、c、d个元素构成一个新的数组个元素构成一个新的数组x(a
16、)x(b)x(c)x(d).(2)访问一块元素:访问一块元素:x(a:b:c)表示访问数组表示访问数组x的从的从第第a个元素开始,以步长为个元素开始,以步长为b到第到第c个元素(但不超过个元素(但不超过c),),b可以为负数,可以为负数,b缺省时为缺省时为1.(1)访问一个元素:)访问一个元素:x(i)表示访问数组表示访问数组x的第的第i个元素个元素.Page 29列向量列向量的数组操作和运算与行向量是一样的,唯一的的数组操作和运算与行向量是一样的,唯一的区别是结果以列形式显示区别是结果以列形式显示.产生列向量有两种方法:产生列向量有两种方法:直接产生直接产生 例例 c=1;2;3;4 转置产
17、生转置产生 例例 b=1 2 3 4;c=b 说明:以说明:以空格空格或或逗号逗号分隔的元素指定的是不同列的分隔的元素指定的是不同列的元素,而以元素,而以分号分号分隔的元素指定了不同行的元素分隔的元素指定了不同行的元素.3 3、数组的方向、数组的方向Page 304、数组的运算、数组的运算(1)标量)标量-数组:数组:设:设:a=a1,a2,an,c=标标量量则:则:a+c=a1+c,a2+c,an+c a.*c=a1*c,a2*c,an*c a./c=a1/c,a2/c,an/c(右除)右除)a.c=c/a1,c/a2,c/an(左除)左除)a.c=a1c,a2c,anc c.a=ca1,c
18、a2,can Page 31设:设:a=a1,a2,an,b=b1,b2,bn则:则:a+b=a1+b1,a2+b2,an+bn a.*b=a1*b1,a2*b2,an*bn a./b=a1/b1,a2/b2,an/bn a.b=b1/a1,b2/a2,bn/an a.b=a1b1,a2b2,anbn(2 2)数组数组-数组运算数组运算Page 321、矩阵的建立、矩阵的建立(1)将将矩矩阵阵的的元元素素用用方方括括号号括括起起来来,按按矩矩阵阵行行的的顺顺序序输输入入各各元元素素,同同一一行行的的各各元元素素之之间间用用空空格格或或逗逗号号分分隔隔,不不同同行行的的元元素素之之间间用用分分号
19、号分分隔隔。在在输输入入矩矩阵时,按阵时,按Enter键也表示开始一新行键也表示开始一新行.例:键入命令例:键入命令:A=1 2 3;4 5 6;7 8 9 A=1,2,3;4,5,6;7,8,9输出结果:输出结果:A=1 2 3 4 5 6 7 8 9Page 33(2)利用利用M文件建立矩阵:文件建立矩阵:第一步:使用编辑程序输入文件内容。第一步:使用编辑程序输入文件内容。第二步:保存并设文件名为第二步:保存并设文件名为xxx.m。第第三三步步:在在MATLAB命命令令窗窗口口中中输输入入xxx,就就会会自动建立一个名为自动建立一个名为AM的矩阵,可供调用。的矩阵,可供调用。Page 34
20、特殊矩阵的建立:特殊矩阵的建立:MATLAB(matrix1)d=eye(m,n)产生一个产生一个m行、行、n列的单位矩阵列的单位矩阵c=ones(m,n)产生一个产生一个m行、行、n列的元素列的元素 全为全为1的矩阵的矩阵b=zeros(m,n)产生一个产生一个m行、行、n列的零矩阵列的零矩阵a=产生一个空矩阵,当对一项操作无结产生一个空矩阵,当对一项操作无结 果时,返回空矩阵,空矩阵的大小为零果时,返回空矩阵,空矩阵的大小为零.Page 352、矩阵中元素的操作、矩阵中元素的操作(1)矩阵)矩阵A的第的第r行:行:A(r,:),:)(2)矩阵)矩阵A的第的第r列:列:A(:,(:,r)(3
21、)取矩阵)取矩阵A的第的第i1i2行、第行、第j1j2列构成新矩阵列构成新矩阵:A(i1:i2,j1:j2)(4)以逆序提取矩阵)以逆序提取矩阵A的第的第i1i2行,构成新矩阵行,构成新矩阵:A(i2:-1:i1,:),:)(5)删除)删除A的第的第i1i2行,构成新矩阵行,构成新矩阵:A(i1:i2,:,:)=(6)删除)删除A的第的第j1j2列,构成新矩阵列,构成新矩阵:A(:,:,j1:j2)=(7)将矩阵)将矩阵A和和B拼接成新矩阵:拼接成新矩阵:A B;A;BPage 363矩阵的基本运算矩阵的基本运算()矩阵转置()矩阵转置 B()矩阵加和减()矩阵加和减 B+C()矩阵乘法()矩
22、阵乘法 B*C(4)矩阵乘法方阵的逆)矩阵乘法方阵的逆 inv(A)(5)矩阵除法)矩阵除法 Ab=inv(A)*b(6)矩阵的乘方)矩阵的乘方 A2(7)方阵的行列式:)方阵的行列式:det(A)(8)方阵的特征值与特征向量:)方阵的特征值与特征向量:V,D=eigAPage 37输入命令:C=B C=1 5 9 2 6 10 3 7 11 4 8 12 输入命令:D=B*C D=30 70 110 70 174 278 110 278 446(1)(1)矩阵转置运算矩阵转置运算:(2)矩阵乘法:矩阵乘法:要求要求B的列数等于的列数等于C的行数的行数Page 38(3 3)矩阵点乘、加减法)
23、矩阵点乘、加减法 当两矩阵维数相同时,运算符当两矩阵维数相同时,运算符.*的结果是两矩阵的对应元素的结果是两矩阵的对应元素乘,加减法相同。乘,加减法相同。E=1 2;3 4;F=2 3;4 5;G=E.*F G=2 6 12 20点运算是两个维数相同点运算是两个维数相同矩阵对应元素之间的运矩阵对应元素之间的运算,在有的教材中也定算,在有的教材中也定义为数组运算。义为数组运算。Page 39(5)矩阵的除法)矩阵的除法解方程组解方程组:ax=b,其中其中a是是(n*m)的矩阵的矩阵x=ab 或或 x=b/a 注注:ab运运算算等等效效于于求求a*x=b的的解解;而而a/b等等效效于于求求x*b=
24、a的解。的解。Page 40E=1 2;3 4;(6)矩阵的乘方)矩阵的乘方 矩矩阵阵为为方方阵阵时时,可可以以进进行行矩矩阵阵的的乘乘方方运运算算,运运算算符符为为,与与矩阵分解有关矩阵分解有关 E3 ans=37 54 81 118 若仅是元素进行乘方运算,可用运算符若仅是元素进行乘方运算,可用运算符.E.3 ans=1 8 27 64Page 41(7)矩阵的逆:)矩阵的逆:利用函数利用函数inv计算,此时要求矩阵为方阵且可逆。计算,此时要求矩阵为方阵且可逆。X=inv(E)X=-2.0000 1.0000 1.5000 -0.5000(8)矩阵元素的赋值与运算矩阵元素的赋值与运算 Ma
25、tlab允允许许用用户户对对矩矩阵阵的的单单个个元元素素进进行行赋赋值值和和操操作作,Matlab此时命令方式为此时命令方式为 X(i,j)=变量名变量名Page 42例例7.5 求解线性方程组求解线性方程组AX=B 1 1.5 2 9 7 3 0 3.6 0.5 -4 4 -4 其中其中A=7 10 -3 22 33 ,B=20 3 7 8.5 21 6 5 3 8 0 90 -20 16 Page 43在在MATLAB命令窗口输入命令:命令窗口输入命令:a=11.5,2,9,7;0,3.6,0.5,-4,4;7,10,-3,22,33;3,7,8.5,21,6;3,8,0,90,-20;b
26、=3;-4;20;5;16;x=ab得到的结果是:得到的结果是:x=3.5653 -0.9255 -0.2695 0.1435 0.0101Page 44在在MATLAB命令窗口输入:命令窗口输入:p=1,7,0,9,-20;%建立多项式系数向量建立多项式系数向量 x=roots(p)%求根求根得到的结果是:得到的结果是:x=-7.2254 -0.4286+1.5405i -0.4286-1.5405i 1.0826例例7.6 求方程求方程 x4+7x3+9x-20=0的全部根的全部根Page 45三、绘图功能三、绘图功能1 1、二维图形、二维图形v(1)plot函数函数v函数格式:函数格式:
27、plot(x,y)其中其中x和和y为坐标向量为坐标向量v函数功能:以向量函数功能:以向量x、y为轴,绘制曲线。为轴,绘制曲线。v例例7.7 在在0 x2 内,绘制正弦曲线内,绘制正弦曲线y=sinx,其程序,其程序为:为:x=0:pi/100:2*pi;y=sin(x);plot(x,y)Page 46Page 47x=0:pi/100:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,x,y2)v例例7.8 在在0 x2 内,同时绘制正、余弦曲线内,同时绘制正、余弦曲线y1=sinx和和y2=cosx,其程序为:其程序为:v(1)plot函数函数v函数格式:函数格式:pl
28、ot(x,y1,x,y2,x,y3,)v函数功能:是以公共向量函数功能:是以公共向量x为为X轴,分别以轴,分别以y1,y2,y3,为为Y轴,在同一幅图内绘制出多条曲线。轴,在同一幅图内绘制出多条曲线。Page 48Page 49x=0:pi/100:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,go,x,y2,b-.)其其中中参参数数go和和b-.表表示示图图形形的的颜颜色色和和线线型型。g表表示示绿绿色色,o表表示示图图形形线型为圆圈;线型为圆圈;b表示蓝色,表示蓝色,-.表示图形线型为点划线。表示图形线型为点划线。v(1)plot函数函数格式:格式:plot(x,y
29、1,cs,.),其中其中c表示颜色,表示颜色,s表示线型。表示线型。v函数功能:绘制出指定颜色和线型的曲线。函数功能:绘制出指定颜色和线型的曲线。【例例7.97.9】用不同线型和颜色重新绘制例用不同线型和颜色重新绘制例2 2图形,其程序为:图形,其程序为:Page 50Page 51二维绘图函数小结二维绘图函数小结plot 二维图形基本函数fplot f(x)函数曲线绘制fill 填充二维多边图形polar 极坐标图bar 条形图loglog 双对数坐标图semilogx X轴为对数的坐标图semilogy Y轴为对数的坐标图stairs 阶梯形图axis 设置坐标轴clf 清除图形窗口内容c
30、lose 关闭图形窗口figure 创建图形窗口grid 放置坐标网格线gtext 用鼠标放置文本hold 保持当前图形窗口内容subplot 创建子图text 放置文本title 放置图形标题xlabel 放置X轴坐标标记ylabel 放置Y轴坐标标记Page 522.2.三维图形三维图形(1)plot3函数函数 它是将二维函数它是将二维函数plot的有关功能扩展到三维空间,的有关功能扩展到三维空间,用来绘制三维图形。用来绘制三维图形。函数格式:函数格式:plot3(x1,y1,z1,c1,x2,y2,z2,c2,)其其中中x1,y1,z1表表示示三三维维坐坐标标向向量量,c1,c2表表示示
31、线线形形或颜色。或颜色。函数功能:以向量函数功能:以向量x,y,z为坐标,绘制三维曲线。为坐标,绘制三维曲线。Page 53t=0:pi/50:10*pi;y=sin(t),z=cos(t);plot3(y,z,t);title(helix),text(0,0,0,origin);xlabel(sin(t),ylabel(cos(t),zlabel(t);grid;v例例7.8 绘制三维的螺旋曲线绘制三维的螺旋曲线y=sint和和z=cost,其程序其程序为:为:Page 54Page 55用用MATLAB求解线性规划求解线性规划Page 561.模型:模型:命令:命令:x=linprog(c
32、,A,b)命令命令:x=linprog(c,A,b,Aeq,beq)注:若没有不等式注:若没有不等式 存在,则令存在,则令A=,b=.2.模型:模型:Page 57命令:命令:1 x=linprog(c,A,b,Aeq,beq,VLB,VUB)注:若没有等式约束注:若没有等式约束 ,则令则令Aeq=,beq=.4.命令:命令:x,fval=linprog()返回最优解返回最优解及及处的目标函数值处的目标函数值fval.3.模型:模型:Page 58 例例7.10 求解线性规划求解线性规划Page 59解:解:编写编写M文件文件xxgh1.m如下:如下:c=-0.4-0.28-0.32-0.72
33、-0.64-0.6;在命令窗口输入:在命令窗口输入:xxgh1 xxgh1 回车即得回车即得x,fval=linprog(c,A,b,Aeq,beq,vlb,vub)b=850;700;100;900;Aeq=;beq=;vlb=0;0;0;0;0;0;vub=;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;Page 60例例7.11 求解线性规划求解线性规划Page 61解解:编写编写M文件文件xxgh2.m如下:如下:c=6 3 4;A=0 1 0;b=50;Aeq
34、=1 1 1;beq=120;vlb=30,0,20;vub=;x,fval=linprog(c,A,b,Aeq,beq,vlb,vub)在命令窗口输入:在命令窗口输入:xxgh2 xxgh2 回车即得回车即得Page 62问题问题1:某厂每日:某厂每日8小时的产量不低于小时的产量不低于1800件件.为了进行为了进行质量控制,计划聘请两种不同水平的检验员。一级检质量控制,计划聘请两种不同水平的检验员。一级检验员的标准为:速度验员的标准为:速度25件件/小时,正确率小时,正确率98%,计时工,计时工资资4元元/小时;二级检验员的标准为:速度小时;二级检验员的标准为:速度15件件/小时,小时,正确
35、率正确率95%,计时工资,计时工资3元元/小时。检验员每错检一次,小时。检验员每错检一次,工厂要损失工厂要损失2元。为使总检验费用最省,该工厂应聘一元。为使总检验费用最省,该工厂应聘一级、二级检验员各几名?级、二级检验员各几名?Page 63解解 设需一级和二级检验员的人数分别为设需一级和二级检验员的人数分别为x1、x2人人,因检验员错检而造成的损失为:因检验员错检而造成的损失为:则应付检验员的工资为:则应付检验员的工资为:总检验费为:总检验费为:Page 64故目标函数为:故目标函数为:约束条件为:约束条件为:Page 65化简为线性规划模型:化简为线性规划模型:Page 66编写编写M文件
36、文件xxgh3.m如下:如下:c=40,36;A=-5,-3;b=-45;Aeq=;beq=;vlb=0;0;vub=9;15;x,fval=linprog(c,A,b,Aeq,beq,vlb,vub)在命令窗口输入:在命令窗口输入:xxgh3 xxgh3 回车即得回车即得Page 67结果为:结果为:x=9.0000 0.0000fval=360即只需聘用即只需聘用9 9个一级检验员,总检验费最小为个一级检验员,总检验费最小为360.360.Page 68问题问题2(任务分配问题)任务分配问题)某车间有甲、乙两台机床,可用于加工三种工件某车间有甲、乙两台机床,可用于加工三种工件.假假定这两台
37、车床的可用台时数分别为定这两台车床的可用台时数分别为800和和900,三种,三种工件的数量分别为工件的数量分别为400、600和和500,且已知用三种不,且已知用三种不同车床加工单位数量不同工件所需的台时数和加工同车床加工单位数量不同工件所需的台时数和加工费用如下表费用如下表.问怎样分配车床的加工任务,才能既满问怎样分配车床的加工任务,才能既满足加工工件的要求,又使加工费用最低?足加工工件的要求,又使加工费用最低?Page 69车床车床类类 型型单位工件所需加工单位工件所需加工台时数台时数单位工件的加工费单位工件的加工费用用可用可用台时台时数数工件工件1工件工件2工件工件3工件工件1工件工件2
38、工件工件3甲甲0.41.11.013910800乙乙0.51.21.311128900工件工件1 1、2 2、3 3数量分别为数量分别为400400、600600和和500500Page 70解:解:设在甲车床上加工工件设在甲车床上加工工件1、2、3的数量分别为的数量分别为x1、x2、x3,在乙车床上加工工件在乙车床上加工工件1、2、3的数量分别为的数量分别为x4、x5、x6,可建立以下模型:可建立以下模型:Page 71Page 72编写编写M文件文件xxgh4.m如下如下:f=13 9 10 11 12 8;A=0.4 1.1 1 0 0 0;0 0 0 0.5 1.2 1.3;b=800
39、;900;Aeq=1 0 0 1 0 0;0 1 0 0 1 0;0 0 1 0 0 1;beq=400 600 500;vlb=zeros(6,1);vub=;x,fval=linprog(f,A,b,Aeq,beq,vlb,vub)在命令窗口输入:在命令窗口输入:xxgh4 xxgh4 回车即得回车即得Page 73结果结果:x=0.0000 600.0000 0.0000 400.0000 0.0000 500.0000fval=1.3800e+004即在甲机床上加工即在甲机床上加工600个工件个工件2,在乙机床上加工在乙机床上加工400个工件个工件1、500个工件个工件3,可在满足条件
40、的情况下使总加工费最小为,可在满足条件的情况下使总加工费最小为13800Page 74作业一作业一 大润发超市是个建在大学城边上的大型百货商场,大润发超市是个建在大学城边上的大型百货商场,每周对收银人员的需求,统计如下表每周对收银人员的需求,统计如下表星期星期1234567人数人数6587101815为了保了保证收收银人人员充分休息,收充分休息,收银人人员每周工作每周工作5 5天,休息天,休息2 2天。天。问应如何安排收如何安排收银人人员的工作的工作时间,使得所配收使得所配收银人人员最少?最少?Page 75作业二作业二 某厂生产甲、乙两种口味的饮料某厂生产甲、乙两种口味的饮料,每百箱甲饮料需
41、原每百箱甲饮料需原料料6千克千克,工人工人10名名,可获利可获利10万元万元;每百箱乙饮料需原每百箱乙饮料需原料料5千克千克,工人工人20名名,可获利可获利9万元。工厂共有原料万元。工厂共有原料60千千克克,工人工人150名名,又由于其他条件所限甲饮料产量不超过又由于其他条件所限甲饮料产量不超过800箱。问箱。问1)如何安排生产计划使获利最大。进一步讨论)如何安排生产计划使获利最大。进一步讨论:2)若投资若投资0.8万元可增加原料万元可增加原料1千克千克,问应否作这项投资。问应否作这项投资。3)若每百箱甲饮料获利可增加若每百箱甲饮料获利可增加1万元万元,问应否改变生产问应否改变生产计划。计划。Page 76小结小结学习要点:学习要点:1.掌握用掌握用Mathematic求解线性规划;求解线性规划;2.掌握用掌握用MATLAB求解线性规划;求解线性规划;Page 77为了了让员工工们休息更愉快、方便,可将每位休息更愉快、方便,可将每位员工的工的休息休息时间安排在安排在连续的两天;的两天;则可可设设xi(i=1,2,3=1,2,3,7)7)表示星期一至日开始休息的人数,表示星期一至日开始休息的人数,依依题题意我意我们们可建立如下数学模型:可建立如下数学模型:Page 78Page 79 作业:作业:The end!The end!