matlab解决线性规划最优解和最优值_第1页
matlab解决线性规划最优解和最优值_第2页
matlab解决线性规划最优解和最优值_第3页
matlab解决线性规划最优解和最优值_第4页
matlab解决线性规划最优解和最优值_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE1"MATLAB程序设计"大作业一、题目用MATLAB求解线性规划最优解和最优值的问题。二、问题描述和分析2.1:线性规划(简记LP)是合理利用、调配资源的一种应用数学的方法,它的基本思路就是在满足一定的约束条件下,使预定的目标达到最优;它的研究内容可归纳为两个方面:一是系统的任务已定,如何合理筹划,精细安排,用最少的资源去实现这个任务;二是资源的数量已定,如何利用、分配,使任务完成得最多.前者是求极小,后者是求极大.线性规划是在满足企业内、外部的条件下,实现管理目标和极值问题,就是要以尽少的资源输入来实现更多的社会需要的产品的产出.2.2:线性规划问题是目标函数和约束条件均为线性函数的问题,MATLAB7.0解决的线性规划问题的标准形式为:minsub.to:其中f、x、b、beq、lb、ub为向量,A、Aeq为矩阵2.3:函数linprog格式x=linprog(f,A,b)%求minf'*xsub.to线性规划的最优解。x=linprog(f,A,b,Aeq,beq)%等式约束,若没有不等式约束,则A=[],b=[]。x=linprog(f,A,b,Aeq,beq,lb,ub)%指定x的范围,若没有等式约束,则Aeq=[],beq=[]x=linprog(f,A,b,Aeq,beq,lb,ub,x0)%设置初值x0x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)%options为指定的优化参数[x,fval]=linprog(…)%返回目标函数最优值,即fval=f'*x。例如:某地区水源取自某水库,水库涵洞底标高为45m,水输送到调节水池距离为1470m,调节水池最高水位35m(高10m),该段距离中要求输水量174L/s;另一段,从调节水池输水到某水厂的距离为4780m,调节水池低水位标高为30m,水厂水池标高为17.5m,高差12.5m,要求输水量116L/s.,可供铺设的输水管有四种不同直径,它们的单位长度造价和水头损失列于表中.问应如何适当选择输水管进行铺设,既能保证供水,又能使造价最低.表1输水管道单位长度造价和水头损失管径单价(元/m)单位长度水头损失(m/1000m)Q=174L/s时的水头损失h/mQ=116L/s时的水头损失h/m6001000.8730.419500742.1601.030400546.7603.1203003631.00013.800三、建立数学模型(1):对第一段水库到调节水池,设管径为600、500、400、300的输水营的铺设长度分别为x1,x2,x3,x4,输水管道铺设的且造价为fval,为保证供水,要求x1+x2+x3+x4=1470另外,要求输水量为174L/s时,该段总水头损失不超过10m,即0.873x1+2.160x2+6.760x3+31.000x4≤10×1000而输水管道铺设的且造价为fval=100x1+74x2+54x3+36x4得到如下线性规划模型为min100x1+74x2+54x3+36x4s.t.0.873x1+2.160x2+6.760x3+31.000x4≤10×1000x1+x2+x3+x4=1470x1,x2,x3,x4≥0(2):对第二段调节水池到水厂,同理设管径为600、500、400、300的输水营的铺设长度分别为x1,x2,x3,x4,为保证供水,要求x1+x2+x3+x4=4780另外,要求输水量为116L/s时,该段总水头损失不超过12.5m,即0.419x1+1.030x2+3.120x3+13.800x4≤12.5×1000而输水管道铺设的且造价为fval=100x1+70x2+54x3+36x4根据题意,可建立线性规划型为min100x1+74x2+54x3+36x4,s.t.0.419x1+1.030x2+3.120x3+13.800x4≤12.5×1000x1+x2+x3+x4=4780x1,x2,x3,x4≥0四、编写程序用MTLAB软件直接求解(1)程序如下:f=[100,74,54,36];A=[0.873,2.160,6.760,31.000];b=[10000];Aeq=[1,1,1,1];beq=[1470];lb=zeros(4,1);[x,fval]=linprog(f,A,b,Aeq,beq,lb)用MTLAB软件直接求解(2)程序如下:f=[100,74,54,36];A=[0.419,1.030,3.120,13.800];b=[12500];Aeq=[1,1,1,1];beq=[4780];lb=zeros(4,1);[y,fval]=linprog(f,A,b,Aeq,beq,lb)五、程序调试程序(1)结果如下:Optimizationterminated.x=1.0e+003*0.00000.00001.46740.0026fval=7.9333e+004x1=0,x2=0,x3=1467.4,x4=2.6,fval=79333;可见,当第一段中管径为400的输水管1467.4m管径为300的输水管铺设2.6m时,可使该段总造价最低为79333元程序(2)结果如下:Optimizationterminated.y=1.0e+003*0.00001.15483.62520.0000fval=2.8122e+005x1=0,x2=1154.8,x3=3625.2,x4=0,fval=281220;而当第一段中管径为500的输水管铺设1154.8m及管径为400的输水管3625.2m时,该段总造价最低为281220元;综上整个输水管铺设工程总造价为360553元.六、小结线性规划为硬性约束,在一定的条件下存在最优解,用MATLAB线性约束优化函数linprog,能求出满足所有约束条件的最优解,而且MATLAB编程效率和计算效率极高,使用MATLAB工具箱,只须编写很简单的几行程序代码,即可进行线性规划的优化设计,且结果可靠,计算精度高,避免了应用其他语言程序过于复杂、调试困难等缺点,提高了计算效果。通过这次自己做matlab选修课大作业的实践过程,我从中学到了许多东西,不仅仅是大脑知识的丰富,更是自己动手能力的提升,同时对MATLAB软件有了进一步的认识,感觉到了它强大而实用的功能。从一开始的找题型,到从学校图书馆借参考资料或上网查阅相关类型题,再到抽象建立数学模型,编写相应的程序,最后进行调试。尤其是最后一步调试过程,可谓是费了我九牛二虎之力,整整花了我二个小时时间,才找到程序错误所在,所以我打心里敬佩那些开发软件的工程师,他们将这样强大的软件编出来,需要花费多少时间和多少人力!既然我们已经站在了前人的肩膀上,他们已经为我们创造出这麽好的软件,我更应当努力学习,熟练掌握matlab等相关软件,为我们所用,同时我们不能仅仅停留在前人的层次,更应当勇于创新,开发出更强大、更实用的软件。我坚信不久的将来,我们这一代

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论