欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    MATLAB在水资源动态规划中的运用与改进.docx

    • 资源ID:9750723       资源大小:20.12KB        全文页数:9页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    MATLAB在水资源动态规划中的运用与改进.docx

    MATLAB在水资源动态规划中的运用与改进 【摘 要】水资源是人类赖以生存的珍贵资源,搞好水资源优化配置对实现水资源的可持续利用尤为重要。本文结合一个实例,具体介绍了用MATLAB解决水资源动态规划的思路与方法,同时与传统的逆序法对比,突出了MATLAB的优越性。并且,参照了之前学者所编写的程序,给出了自己的程序优化方案,使程序运行速度、可读性等方面得到了提高。 【关键词】动态规划;水资源优化配置;MATLAB 0.引言 动态规划是解决多阶段决策过程最优化问题的一种方法,该方法是由美国数学家贝尔曼等人在20世纪50年头提出。他们针对多阶段决策问题的特点,提出了解决这类问题的最优化原理,并胜利解决了生产管理、资源安排等方面的很多实际问题,从而建立了运筹学的分支动态规划1。MATLAB是一个功能强大的用于矩阵运算的数值计算软件,是决策系统优化计算和设计的有力工具,将MATLAB运用到动态规划中可以达到计算简便的目的2。现在利用MATLAB解决动态规划问题的程序不少,但是,如何充分利用MATLAB的特点来优化程序的确一个值得深思的问题。 1.MATLAB程序设计 MATLAB有2种工作方式:一是交互式的吩咐工作方式,干脆在Command Window中输入指令求解。另一种是M脚本文件的工作方式,这种工作方式用来解决指令较多和所用指令结构较为困难的问题3。 由于动态规划问题的特别性,其涉及的实际问题均须要反复的计算求解,所以在运用MATLAB语言编程中采纳最多的是循环结构。MATLAB供应了2种实现循环结构的语句for语句和while语句4。 2.应用实例 有一引水渠,其设计最大流量为6m3/s,为甲、乙、丙、丁4个地区供水。据统计,在给四个地区供水时,不同的供水量产生的效益见表1。那么,如何安排供水量可以使产生的总效益最大。 表1 供水量与增产效益的关系 2.1逆序法计算 采纳逆序法表格计算,可以得到最优安排方案有3个,分别是,最大效益为19万元。 2.2 MATLAB编程计算 2.2.1思路分析 由于本例较为简洁,所以不采纳M脚本文件的工作方式,干脆在Command Window中输入指令即可。 Step1.输入参数 建立A、B、C、D 4个数组,分别来储存供应甲、乙、丙、丁4个地区不同水量时产生的效益。考虑到在动态规划时,某个城市的供水量可以为0,对应的效益也为0,所以A、B、C、D四个数组都应当加入一个元素0。这里采纳单下标表示法,分别用i、j、k、 l表示数组A、B、C、D中元素的下标。A=2,表示当i=3时,A中元素为2,即向A供水2m3/s。Step2.找出全部可行解,储存其安排方法和对应的效益,要找出全部的可行解,最简便的的方法是采纳循环结构枚举。 确定循环条件: 循环的限制条件应当是最大设计流量。由于最大设计流量是6 m3/s,现在随意假设一例安排方法以确定循环条件。假设全部的水量全部供应了丁,即l=7,那么此时可有i=j=k=1,得i+j+k+l=10。由于无论是那种安排方法都要满意最大设计流量的限制,所以i+j+k+l=10即为循环条件。由于循环次数是已知的,所以采纳for语句循环。 储存安排方法: 建立一个二维数组E,采纳全下标的方法将安排方法存入其中,每一行为一种安排方式。 储存效益: 建立一个数组d,常用单下标的方式将全部安排方法对应的效益存入其中。 Step3.确定最大效益的值 全部方案的效益都存储在数组d中,所以传统的方法就是采纳循环结构遍历数组d中的全部元素以找到最大值。但是在编程中应当尽量避开运用循环结构。因为在循环结构中,要反复进行存储变量间的“存放”操作和算符调用操作,消耗计算时间。MATLAB中为用户供应了大量的现成函数,尽可能多的采纳现成函数编程可以使所编程序更牢靠、更快速、可读性更好6。 采纳循环结构确定最大效益 程序如下: MAX=d; for n=1:length if d>MAX MAX=d; end end 采纳max函数确定最大效益 由于max求的是数组X中各列的最大值,所以应当先对数组d转置。 程序如下: MAX=max 可以清晰的看到,采纳matlab中现成的max函数比用循环结构更好,不仅使程序的输入得到了简化,同时也使程序的可读性更好。 Step4.确定最大效益所对应的安排方法 数组E中的横坐标和数组d中的下标是一一对应的,即数组E中横坐标为a的行产生的总效益储存在数组d中下标为a的元素中。所以可以采纳循环遍历的方法,找到数组d中全部值等于MAX的元素的下标n,在把数组E中对应的第n行输出,即可得到最优安排方法。当然,我们也可以利用matlab中现成的函数find来代替这个循环结构。 采纳循环结构确定最大值 程序如下: for n=1:length if d=MAX E-1 end end 采纳find函数确定最大值 程序如下: n=find; E-1 2.2.2完整MATLAB程序 为了突出MTALAB语言编程在动态规划中的优越性,这里分别在程序的开头和结尾加入tic和ti=toc,以记录下程序运行须要的时间。但应当留意的是,ti的值受到电脑配置、matlab版本和该程序是否首次运行等因素的影响。 优化后的完整程序如下: clear all tic m=1; A=0 3 5.5 7.5 9 10 10; B=0 3 6 8 9.5 10.5 11; C=0 4 6.5 8.5 9 9 9; D=0 3.5 6 7.5 8.5 9 9; for i=1:7 for j=1:7 for k=1:7 for l=1:7 if i+j+k+l=10 d=A+B+C+D; E=i; E=j; E=k; E=l; m=m+1; end end end end end MAX=max n=find; E-1 ti=toc 按回车后可以得到以下结果: MAX = 19 ans = 1 2 1 2 1 2 2 1 2 2 1 1 ti = 0.0255 运行结果表示有三个最优水资源安排方案,即、,最大效益为19万元,程序运行时间为0.0255 s。 2.2.3小结 从本例可以看出,运用MATLAB解决动态规划问题比逆序法更具有可操作性。因为实际工作中要解决的问题往往比本例困难得多,运用MATLAB编程可以避开繁琐的人工计算。同时,相比之前学者的程序而言,优化后的程序尽量回避了循环结构,充分利用了MATLAB中现成的函数,不仅使程序可读性更好,输入更简便,还大大提高了程序运行速度。经笔者测试,若是采纳没有优化的方案编程,程序运行时间为0.0401s,相比之下,优化后的程序运行速度提高了36%,程序代码也由原来的36行削减到了27行。在实际工作的运用中,特殊是在困难的实例中,这种优点将得到更大的体现。 3.结语 本文结合一简洁实例,具体说明白MATLAB编程的思路与方法,并给出了程序优化方案。从本例的计算结果可以看出,运用MAYLAB编程解决动态规划问题是实际可行的,而优化后的程序在运算速度、可读性等方面都有提高,这为解决实际工作中的动态规划问题供应了新的思路。但是,如何利用MATLAB的向量化计算特点来做到更深层次的优化还值得更多的思索与探讨。 科 【参考文献】 1孙赵杰.运筹学M.北京:机械工业出版社,2022. 2赵云,王希云.基于MATLAB的动态规划常用算法的实现J.太原师范高校学报,2022,7:26-30. 3刘卫国.科学计算与MATLAB语言M.北京:中国铁道出版社,2000. 4楼顺天.MATLAB程序与语言M.西安:西安电子科技高校出版社,19101. 5左兼金.水利水电施工组织管理与系统分析M.北京:水利水电出版社,11013. 6张志涌,杨祖樱.MATLAB教程R2022aM.北京:北京航空航天高校出版社,2022,129. 第9页 共9页第 9 页 共 9 页第 9 页 共 9 页第 9 页 共 9 页第 9 页 共 9 页第 9 页 共 9 页第 9 页 共 9 页第 9 页 共 9 页第 9 页 共 9 页第 9 页 共 9 页第 9 页 共 9 页

    注意事项

    本文(MATLAB在水资源动态规划中的运用与改进.docx)为本站会员(l***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开