您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > MATLAB实际问题应用
第页共页大学实验报告实验项目名称:MATLAB实际问题应用(所属课程:MATLAB基础及其应用)院系:专业班级:姓名:学号:A实验日期:实验地点:A指导老师:教师签字:实验成绩:日期:(以下为报告正文,正文应包含实验目的、实验条件、实验内容、实验步骤、实验结果、讨论、参考文献七个项目)实验目的1.掌握MATLAB线形规划解决实际问题2.运用MATLAB计算动态规划问题。3.运用MATLAB算法解决最短路径问题。实验条件计算机(LENOVOWindows10.CPU:Inter(R)Core(TM)i7-6500UCPU@2.5GHz.内存4GB.显卡:AMDRadeon(TM)R5M430(2048MB)+Intel(R)HDGraphics520(1024MB))、MATLABR2014a、MATLAB数学实验指导书等。实验步骤1.某公司经营两种物品,第一种物品每吨售价30元,第二种物品每吨售价450元。根据统计,售出每吨第一种物品所需要的营业时间平均是0.5h,第二种物品是hx)25.02(2,其中2x是第二种物品售出的数量。已知该公司在这段时间内的总营业时间为800h,试决定使其营业额最大的营业计划。第页共页解:设该公司经营第一种物品1x件,第二种物品2x件,营业额为2145030xxf,则.0,0,80025.025.0.45030max21222121xxxxxxxf先写约束函数M函数MATLAB程序如下:function[c,ceq]=eg1con.m%约束函数c=0.2*x(1)+2*x(2)+0.25*x(2)^2-800;ceq=[];脚本程序如下options=optimoptions(‘fmincon’,’Algorithm’,’active-set’,’Display’,’off’);%options表示优化参数。[x,fval]=fmincon(@(x)-30*x(1)-450*x(2),[0;0],[],[],[],[],[0;0],[inf;inf],@eg1con,options)结果X=1.0e+003*1.49550.0110fval=-4.9815e+004问题得解,最大营业额为-f=498152.某电子设备由5种元件1,2,3,4,5组成,这5种元件的可靠性分别为0.9,0.8,0.5,0.7,0.6.为保证电子设备系统的可靠性,同种元件可并联多个。现允许设备使用元件的总数为15个,问如何设计使设备可靠性最大的元件安排方案。解:将该问题看成5阶段动态规划问题,每个元件的配置看成一个阶段。记:kx——配置第k个元件时可用元件的总数(状态变量);ku——第k个元件并联的数目(决策变量);kc——第k个元件的可靠性;阶段指标函数为:kukkkkcuxv)1(1),(;状态转移方程为kkkuxx1;基本方程为第页共页.1,2,3,4,)(|))(),,((min)(,),(),,(),(11,444444kxDuxfuxvGuxfbabaGuxvuxfkkkkkkkkkkkkkMATLAB程序如下:%eg2_f1.mfunctionu=eg2_f1(k,x)%在阶段k由状态变量求出相应决策变量所有的值ifk==5,u=x;else,u=1:x-1;end;u=u(:);%eg2_f2.mfunctionv=eg2_f2(k,x,u)%阶段k的指标函数c=[0.9,0.8,0.5,0.7,0.6];v=1-(1-c(k)).^uv=-v;%将求max转换为min%eg2_f3.mfunctiony=eg2_f3(k,x,u)%状态转移方程y=x-u;%eg2_f4.mfunctiony=eg2_f4(v,f)%基本方程中的函数gy=v*f;y=-y;%将求max转换为min调用dynprog.m计算程序如下clear;n=15;formatshortg;%15个元件x1=[n;nan*ones(n-1,1)];x2=1:n;x2=x2’;x=[x1,x2,x2,x2,x2];[p,f]=dynprog(x,@)eg2_f1,@eg2_f2,@eg2_f3,@eg2_f4)运行结果P=1152-0.992132-0.963114-0.9375473-0.973544-0.9744f=-0.8447结果表明1,2,3,4和5号元件分别并联2,2,4,3和4个,系统总可靠性最大为0.8447第页共页3.已知有6个村庄,各村的小学生人数见表1-1,各村庄间的距离如图1-1所示。现在计划建造一所医院和一所小学,问医院应建在哪个村庄才能使最远村庄的人到医院看病所走的路最短?又问小学建在哪个村庄使得所有学生上学走的总路程最短?表1-1各村小学生人数表村庄V1V2V3V4V5V6小学生504060207090图1-1村庄距离示意图解:问题分析,本题主要运用弗洛伊德算法解决最短路问题。问题进行数据预处理,运用MATLAB程序医院应建在V3,小学应建在V4;MATLAB程序如下:clear;M=10000;%无穷大a(1,:)=[027MMM];%此点到各个点的距离,非相邻点看作无穷大a(2,:)=[20468M];%此点到各个点的距离,非相邻点看作无穷大a(3,:)=[74013M];a(4,:)=[M61016];a(5,:)=[M83103];a(6,:)=[MMM630];b=a;%两城镇间距离矩阵path=zeros(length(b));%路径fork=1:6fori=1:6forj=1:6V1V2V4V5V3V62746381631第页共页ifb(i,j)b(i,k)+b(k,j)b(i,j)=b(i,k)+b(k,j);path(i,j)=k;endendendendb%最短距离矩阵path%路径c=max(b);x=min(c);%找最小值forj=1:6ifc(1,j)==xj%Vj城镇建医院endendu=[504060207090];%各城镇学生人数q=u*b;c=min(q);foro=1:6ifq(1,o)==co%Vo城镇建学校endend运行结果b=02678112045696401257510148621031195430path=002345000345200045330005第页共页444000555500j=3o=4因此可得医院应建在V3,小学应建在V4。讨论通过本次试验我们了解到MATLAB在生活实际问题中的运用,让我们更深入了解到了MATLAB强大的计算功能。参考文献[1]韩中庚.数学建模实用教程[M].高等教育出版社.2016.1[2]胡良剑,孙晓君.MATLAB数学实验[M]。高等教育出版社2016.12
本文标题:MATLAB实际问题应用
链接地址:https://www.777doc.com/doc-6933200 .html