收藏 分销(赏)

数学建模实训报告.doc

上传人:人****来 文档编号:4316461 上传时间:2024-09-05 格式:DOC 页数:16 大小:28.20KB 下载积分:8 金币
下载 相关 举报
数学建模实训报告.doc_第1页
第1页 / 共16页
数学建模实训报告.doc_第2页
第2页 / 共16页


点击查看更多>>
资源描述
目录 实训项目一 线性规划问题及lingo软件求解……………………………1 实训项目二 lingo中集合的应用 ………………………………………….7 实训项目三 lingo中派生集合的应用 ……………………………………9 实训项目四 微分方程的数值解法一………………………………………13 实训项目五 微分方程的数值解法二……………………………………..15 实训项目六 数据点的插值与拟合………………………………………….17 综合实训作品 …………………………………………………………….18 每次实训课必须带上此本子,以便教师检查预习情况和记录实验原始数据。实验时必须遵守实验规则。用正确的理论指导实践袁必须人人亲自动手实验,但反对盲目乱动,更不能无故损坏仪器设备。这是一份重要的不可多得的自我学习资料袁它将记录着你在大学生涯中的学习和学习成果。请你保留下来,若干年后再翻阅仍将感到十分新鲜,记忆犹新。它将推动你在人生奋斗的道路上永往直前! 项目一:线性规划问题及lingo软件求解 一、实训课程名称 数学建模实训 二、实训项目名称 线性规划问题及lingo软件求解 三、实验目的和要求 了解线性规划的基本知识,熟悉应用LINGO解决线性规划问题的一般方法 四:实验内容和原理 内容一: 某医院负责人每日至少需要下列数量的护士 班次 时间 最少护士数 1 6:00-10:00 60 2 10:00-14:00 70 3 14:00-18:00 60 4 18:00-22:00 50 5 22:00-02:00 20 6 02:00-06:00 30 每班的护士在值班的开始时向病房报道,连续工作8个小时,医院领导为满足每班所需要的护士数,最少需要多少护士。 内容二: 内容三 五:主要仪器及耗材 计算机与Windows2000/XP系统;LINGO软件 六:操作办法与实训步骤 内容一: 考虑班次的时间安排,是从6时开始第一班,而第一班最少需要护士数为60,故x1>=60 ,又每班护士连续工作八个小时,以此类推,可以看出每个班次的护士可以为下一个班次工作四小时,据此可以建立如下线性规划模型: 程序编程过程: min=x1+x2+x3+x4+x5+x6; x1>=60; x1+x2>=70; x2+x3>=60; x3+x4>=50; x4+x5>=20; x5+x6>=30; 编程结果: Global optimal solution found. Objective value: 150.0000 Infeasibilities: 0.000000 Total solver iterations: 3 Variable Value Reduced Cost X1 60.00000 0.000000 X2 10.00000 0.000000 X3 50.00000 0.000000 X4 0.000000 1.000000 X5 30.00000 0.000000 X6 0.000000 0.000000 Row Slack or Surplus Dual Price 1 150.0000 -1.000000 2 0.000000 -1.000000 3 0.000000 0.000000 4 0.000000 -1.000000 5 0.000000 0.000000 6 10.00000 0.000000 7 0.000000 -1.000000 内容二: (1)max=6*x1+4*x2; 2*x1+3*x2<100; 4*x1+2*x2<120; x1,x2分别表示两种型号生产数量。 所以,生产产品A1、A2分别为20、20件时,可使利润最大,最大为200元。 (2) 所以,当产品A1的利润在(2.6666667,8)时,不影响产品的生产数量。 (3) 所以,当装配工序的工时在(60,180)时,不改变产品种类,只需调整数量。 (4)加放产品A3,建立新的线性规划问题 max=6*x1+4*x2+5*x3; 2*x1+3*x2+4*x3<=100; 4*x1+2*x2+2*x3<=120; @gin(x1); @gin(x2); @gin(x3); 内容三: (1)设生产I 产品为x1,生产 II为x2, 生产 III 产品为x3,则有: max=3*x1+2*x2+2.9*x3; 8*x1+2*x2+10*x3<300; 10*x1+5*x2+8*x3<400; 2*x1+13*x2+10*x3<420; @gin(x1); @gin(x2); @gin(x3); 所以,当月仅生产产品Ⅰ、Ⅱ、Ⅲ数量分别为24、24、5时工厂的利益最大,最大利润为134.5千元。 (2)max=3*x1+2*x2+2.9*x3-18; 8*x1+2*x2+10*x3<300; 10*x1+5*x2+8*x3<460; 2*x1+13*x2+10*x3<420; @gin(x1); @gin(x2); @gin(x3); 借用其他工厂的设备B 60台时时,可生产产品Ⅰ数量31、产品Ⅱ数量26,此时每月最大利润为127千元,比不借用设备时的利润少7.5千元。所以借用B设备不合算。 (3)如果投入两种新产品,设每月生产的数量分别为x4、x5,则: max=3*x1+2*x2+2.9*x3+2.1*x4+1.87*x5; 8*x1+2*x2+10*x3+12*x4+4*x5<300; 10*x1+5*x2+8*x3+5*x4+4*x5<400; 2*x1+13*x2+10*x3+10*x4+12*x5<420; @gin(x1); @gin(x2); @gin(x3); @gin(x4); @gin(x5); 投产产品IV、V后,该工厂生产产品I、II、III、IV、V数量分别为26、19、1、1、8时,每月最大利润为135.96千元,比不投产该产品时多增加利润1.46千元。故投产产品IV、I在经济上合算。 (4)max=4.5*x1+2*x2+2.9*x3; 9*x1+2*x2+10*x3<300; 12*x1+5*x2+8*x3<400; 4*x1+13*x2+10*x3<420; @gin(x1); @gin(x2); @gin(x3); 改进后,要使得每月利润最大,则需生产产品I、II、III数量分别为22、24、2,最大利润为152.8千元。所以改进结构对原计划有影响。使得利润比为改进之前多18.3千元。 七:项目分析 线性规划模型只是忽略一些外在因素所建立的模型,理论比较简单,但涉及的方面不全,所以要运用到实际中还需要多方面的考虑。 项目二: lingo中集合的应用 一、实训课程名称 数学建模实训 二、实训项目名称 lingo中集合的应用 三、实验目的和要求 熟悉应用LINGO解决规模较大线性规划问题的一般方法,熟悉集合的应用 四:实验内容和原理 采用lingo中的集合语言,编程求解下列两个问题 内容一:某医院负责人每日至少需要下列数量的护士 班次 时间 最少护士数 1 6:00-8:00 60 2 8:00-10:00 50 3 10:00-12:00 70 4 12:00-14:00 40 5 14:00-16:00 60 6 16:00-18:00 40 7 18:00-20:00 50 8 20:00-22:00 30 9 22:00-00:00 20 10 00:00-02:00 30 11 02:00-04:00 30 12 04:00-06:00 30 每班的护士在值班的开始时向病房报道,连续工作6个小时,医院领导为满足每班所需要的护士数,最少需要多少护士。 内容二:某个百货商场对售货人员(周200元)的需求经统计如下表, 星期 1 2 3 4 5 6 7 人数 16 15 12 14 16 18 19 为了保证销售人员充分休息,销每周工作5天,休息2天。问要使工资开支最省至少需要多少售货员?且给出一个销售人员工作时间安排表。 五:主要仪器及耗材 计算机与Windows2000/XP系统;LINGO软件 六:操作办法与实训步骤 内容一: model: sets: class/c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12/:required,hire; endsets data: required=60 50 70 40 60 40 50 30 20 30 30 30; enddata min=@sum(class(i):hire(i)); @for(class(j): @sum(class(i)|i#le#3:hire(@wrap(j-i+1,12)))>=required(j)); end 所以最少需要180名护士。 内容二: model: sets: days/z1,z2,z3,z4,z5,z6,z7/:required,hire; endsets data: required=16 15 12 14 16 18 19; enddata min=200*@sum(days(i):hire(i)); @for(days(j): @sum(days(i)|i#le#5:hire(@wrap(j-i+1,7)))>=required(j)); end 所以要使工资开支最省至少需要22名售货员,工资开资最省为4400元。 项目三: lingo中派生集合的应用 一、实训课程名称 数学建模实训 二、实训项目名称 lingo中派生集合的应用 三、实验目的和要求 熟悉应用LINGO解决规模较大线性规划问题的一般方法,熟悉派生集合、稀疏集合的应用 四:实验内容和原理 采用lingo中的集合语言,编程求解下列两个问题 内容一: 内容二: 计算6个产地8个销地的最小费用运输问题。产销单位运价如下表。 单 位 销地 运 价 产地 B1 B2 B3 B4 B5 B6 B7 B8 产量 A1 6 2 6 7 4 2 5 9 60 A2 4 9 5 3 8 5 8 2 55 A3 5 2 1 9 7 4 3 3 51 A4 7 6 7 3 9 2 7 1 43 A5 2 3 9 5 7 2 6 5 41 A6 5 5 2 2 8 1 4 3 52 销量 35 37 22 32 41 32 43 38 五:主要仪器及耗材 计算机与Windows2000/XP系统;LINGO软件 六:操作办法与实训步骤 内容一: 程序: model: SETS: CITIES/1,2,3,4,5,6,7,8,9,10/:L; ROADS(CITIES,CITIES)/ 1,2 1,3 2,4 2,5 2,6 3,4 3,5 3,6 4,7 4,8 5,7 5,8 5,9 6,8 6,9 7,10 8,10 9,10/:D; ENDSETS DATA: D= 6 5 3 6 9 7 5 11 9 1 8 7 5 4 10 5 7 9; L=0,,,,,,,,,; ENDDATA @FOR(CITIES(i)|i#GT#1: L(i)=@MIN(ROADS(j,i):L(j)+D(j,i));); END 结果: 所以,从城市1到城市10的最短路径长度为17,具体路径为:1—2—4—8—10 内容二: 程序: model: sets: gongying/1..6/:chandi; xuqiu/1..8/:xiaodi; link(gongying,xuqiu):yunjia,c; endsets data: chandi=60 55 51 43 41 52; xiaodi=35 37 22 32 41 32 43 38; yunjia= 6 2 6 7 4 2 5 9 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3; enddata min=@sum(link(i,j):c*yunjia); @for(gongying(i):@sum(xuqiu(j):c(i,j))<=chandi(i)); @for(xuqiu(j):@sum(gongying(i):c(i,j))=xiaodi(j)); end 结果: Global optimal solution found. Objective value: 664.0000 Infeasibilities: 0.000000 Total solver iterations: 15 所以最小费用为664. 项目四:微分方程的数值解法一 一、实训课程名称 数学建模实训 二、实训项目名称 微分方程求解 三、实验目的和要求 1、学会用Matlab求简单微分方程的解析解. 2、学会用Matlab求微分方程的数值解 四:实验内容和原理 1、 求方程 的通解。 2、 求微分方程组 ,在初始条件 下的特解。 3、 求方程 ,分别用ode45,ode15s求解,并画出函数图形。 五:主要仪器及耗材 计算机与Windows2000/XP系统;MATLAB软件 六:操作办法与实训步骤 1、 >> dsolve('(x^2-1)*Dy+2*x*y-sin(x)=0') ans = 1/2*(sin(x)+2*exp(-2*x/(x^2-1)*t)*C1*x)/x 2、 >> [x,y]=dsolve('Dx+x+y=0','Dy+x-y=0','x(0)=1,y(0)=0','t'); >> x=simple(x) x = (-1/4*2^(1/2)+1/2)*exp(2^(1/2)*t)+(1/4*2^(1/2)+1/2)*exp(-2^(1/2)*t) >> y=simple(y) y = -1/4*2^(1/2)*(exp(2^(1/2)*t)-exp(-2^(1/2)*t)) 3、 M_文件: function dx=l(t,x) dx=zeros(2,1); dx(1)=x(1)-0.1*x(1)*x(2)+0.01*t; dx(2)=-x(2)+0.4*x(1)*x(2)+0.04*t; 程序(ode45): >> [t,x]=ode45('l',[0,100],[30 20]); >> plot(t,x(:,1),'-',t,x(:,2),'*') 程序(ode15s): >> [t,x]=ode15s('l',[0,100],[30 20]); >> plot(t,x(:,1),'-',t,x(:,2),'*') 项目五:微分方程的数值解法二 一、实训课程名称 数学建模实训 二、实训项目名称 微分方程求解 三、实验目的和要求 熟悉并掌握用matlab解微分方程的解析解和数值解 四:实验内容和原理 一个慢跑者在平面上沿圆以恒定的速率v=1跑步,设圆方程为: x=10+20cost, y=20+20sint. 突然有一只狗攻击他. 这只狗从原点出发,以恒定速率w跑向慢跑者,狗的运动方向始终指向慢跑者.分别求出w=20,w=5时狗的运动轨迹. 五:主要仪器及耗材 计算机 、matlab软件 六:操作办法与实训步骤 当w=20 建立M文件h,M文件如下 function dy=h(t,y) dy=zeros(2,1); dy(1)=20*(10+20*cos(t)-y(1))/sqrt((10+20*cos(t)-y(1))^2+(20+20*sin(t)-y(2))^2); dy(2)=20*(20+20*sin(t)-y(2))/sqrt((10+20*cos(t)-y(1))^2+(20+20*sin(t)-y(2))^2); 程序如下: 取t0=0,tf=10 [t,y]=ode45('h',[0 10],[0 0]); >> t=0:0.1:2*pi; >> X=10+20*cos(t); >> Y=20+20*sin(t); >> plot(X,Y,'-') >> hold on plot(y(:,1),y(:,2),'*') 当W=5 建立M文件l,M文件如下 function dy=l(t,y) dy=zeros(2,1); dy(1)=5*(10+20*cos(t)-y(1))/sqrt((10+20*cos(t)-y(1))^2+(20+20*sin(t)-y(2))^2); dy(2)=5*(20+20*sin(t)-y(2))/sqrt((10+20*cos(t)-y(1))^2+(20+20*sin(t)-y(2))^2); 程序如下: 取t0=0,tf=10 [t,y]=ode45('l',[0 10],[0 0]); >> t=0:0.1:2*pi; >> X=10+20*cos(t); >> Y=20+20*sin(t); >> plot(X,Y,'-') >> hold on plot(y(:,1),y(:,2),'*') 项目六:数据点的插值与拟合 一、实训课程名称 数学建模实训 二、实训项目名称 数据点的插值与拟合 三、实验目的和要求 了解插值、最小二乘拟合的基本原理,掌握用MATLAB计算一维插值和两种二维插值的方法,掌握用MATLAB作最小二乘多项式拟合和曲线拟合的方法 四:实验内容和原理 附件1列出了采样点的位置、海拔高度及其所属功能区等信息,现要求你们通过数学建模来完成以下任务: (1) 给出8种主要重金属元素在该城区的空间分布,并分析该城区内不同区域重金属的污染程度。 五:主要仪器及耗材 计算机与Windows2000/XP系统;MATLAB软件 六:操作办法与实训步骤 在matlab中输入: x=[]; y=[]; z=[]; cx=0:100:28654; cy=5000:100:18449; cz=griddata(x,y,z,cx,cy','cubic'); meshz(cx,cy,cz),rotate3d xlabel('X'),ylabel('Y'),zlabel('Z') figure(2),contour(cx,cy,cz,15,'r'); 综合实训作品 基于枚举法和曲线积分法公路选址问题的求解 摘 要 城区公路选址是一项利民工程,为将该工程做好,建设部门在设计时应最大限度减少造价,从而节约成本,达到费用最省。为此目的,本文利用函数化思想建立模型求解并给出了五种不同要求下的最优方案。 由题目所给数据(图1)可知,直线AB右上方单位区域中的单位建设费用小于AB左下的单位建设费用,且数据矩阵关于其次对角线对称。因而转弯点(无论一个或两个)均应位于AB右上区域。 问题1要求至多1个转弯点且在网格点上,可分0个和1个转弯点两种情况。对于0个转弯点,即直线AB,通过几何方法得出建设费用为14.9907百万元。对于1个转弯点在网格点上的问题,我们利用函数化思想建立函数关系模型,运用枚举法和权重法,并利用 编程直接输出最小费用。比较可知,恰有一个转弯点时较无转弯点为优。其方案是选择坐标为(5,6)或(6,5)的点,建设费用最小为14.707百万元。 对于问题3,要求转弯点在网格线上,即至少有一个坐标为整数,分一个转弯点和两个转弯点两种情况。因为整数最优点是最接近理想最优点的整数点,我们可以先算出只有两个转弯点时且转弯点在网格点的费用,计算得出最优转弯点为(4,7)和(7,4)时,建设费用最小,为14.6241百万元。在此基础上将循环语句中的步长1修改为0.01,运行结果说明,一个转弯点的最优选择是(6,4.57),费用为14.6989百万元;两个转弯点的最优选择是(3.62,7)和(7,3.62),费用为14.6201百万元。因而选择两个转弯点更优。 对于问题4,坐标点可以为区间[0,9]中的任意实数值,我们在问题三解法的基础上对最优点的两个坐标均用步长 0.01循环,得出最优转弯点为(3.58,7.32)和(7.32,3.58),此时最小费用为14.54百万元。可见较问题3的答案更优。 对于问题5,每个点的单位建设费用都不同,且单位建设费用是连续函数。我们用曲线积分方法建立总费用模型,求出变下限积分函数的最小值,得出最优点为(5.30,5.30),最优建设费用为14.707百万元,与问题1相同。 最后,我们针对问题的实际情况,对论文的优缺点做了评价,提出了几个改进方向,以便用于指导实际应用。 关键词: 函数化建模 编程 枚举法 最优方案 曲线积分法 一、问题重述 某区政府计划在下列区域(见图1)修建一条从A(0,9)到B(9,0)的直线型公路,由于涉及路面拆迁等因素,各地段建设费用有所不同,图1中的数字代表该区域公路单位建设费用(单位:百万元)。未标数字的任何地方单位建设费用均为1。图1的每个网格长与宽都是1个单位。每个网格的边界上建设费用按该地区最小单位费用计算。 请你按建设部门的如下具体要求,从建设费用最省的角度,给出最优的方案。 (1)公路至多只能有1个转弯点,且转弯点只能建在图1所示的网格点上。 (3)公路至多只能有2个转弯点,且转弯点只能建在图1所示的网格线上。 (4)公路至多只能有2个转弯点,转弯点可以建在图1所示区域的任何位置。 (5)如果各区域的单位建设费用为 (百万元),公路至多只能有1个转弯点,转弯点可以建在图1所示区域的任何位置。 图1 二、 问题分析 针对问题一:需要求出当公路至多只能有1个转弯点且转弯点只能建在图1所示的网格点上时所需的费用最省的目标值。 首先,我们计算出没有转弯点时花费为14.9907百万元。对于有一个转弯点的,我们利用函数化建模思想将W与 、 的关系用数学方程式表达出来,接着利用 编程将函数关系式进行运算,使用枚举法得出所有可能的转弯点的值,最后通过查找语句找出所得数据中的最小值,在与没有转弯点的花费比较,较小的即为可用的最优方案。 针对问题三:需要求出当公路至多只能有2个转弯点且转弯点只能建在图1所示的网格线上时所需的费用最省的目标值,坐标点至少有一个为小数,在只有两个转弯点时且转弯点在网格点的基础上设定x或y其一必为小数,即步长改为0.01,和只有两个转弯点时且转弯点在网格点类似。 针对问题四:需要求出当公路至多只能有2个转弯点但转弯点可以建在图1所示区域的任何位置时所需的费用最省的目标值。此时,坐标点为0-9之间的任意实数,有两种情况:一种为有一个转弯点,另一种为有两个转弯点。在问题一与只有两个转弯点时且转弯点在网格点的基础上,针对第一种情况,只需将第一问的程序中的步长改为0.01;针对第二种情况,只需将只有两个转弯点时且转弯点在网格点程序中的步长改为0.01,通过比较两种情况下的值,可得出最优方案。 针对问题五:如果各区域的单位建设费用为 (百万元),公路至多只能有1个转弯点,转弯点可以建在图1所示区域的任何位置。因为每个点的单位建设费用不同,但又是连续变化的,故我们可以利用微积分法思想,假设在极小的一段路程内建设费用是相同的,由此建立一个积分方程,通过 编码找出花费最小值,从而得出最优方案。 三、 模型的假设 1、 区域内所有位置的路面状况均相同 2、 不考虑软件计算带来的极小误差 3、 不考虑转弯点的设置对公路建设费用的影响 4、 在区域内设置转弯点不受地形条件的限制 四、 符号说明 (1) :单转弯点的坐标; (2) :双转弯点中靠近A点的坐标; (3) :双转弯点中靠近B点的坐标; (4) :总建设费用; (5) :单位区域的公路长度; (6) :第 条路段单位建设费用; (7) :第 条路段费用; (8) :第 条路段与网格线交点的横坐标矩阵; (9) :第 条路段与网格线交点的纵坐标矩阵; 五、 模型的建立与求解 5.1 至多只能有1个转弯点且转弯点只能建在网格点上。 5.1.1建立模型 (1)没有转弯点时: W= (百万元) (2)有一个转弯点时: 利用函数化思想,建立 与 、 的函数关系: 第1步:在网格点上任取一点 (图1),根据直线两点式方程: ,可得直线 的方程为 图1 第2步:由直线方程可求得AP与x=i(i=0、1、2…… )和y=j(j=yp……8、9)的 所有交点,并按x从小到大的排序, ( , )(i=1,2,3,4……) 取( , )和( , )则可以根据它们的中点得到这两点的路段需要的加权权重,即: 因此对于 有 ,累加可得AP段公路的费用。PB段公路的费用同理可得。 故此总费用的表达式为: 5.1.2 软件求解 根据枚举法,利用Matlab软件求解(程序见chengxuyi),流程图如图2: 图2 求解 的流程图 从 程序运行结果可以看出,使得W最小的点的坐标为(5,6)和(6,5) ,此时, =14.707百万元。 因为14.707<14.9907 所以,将转弯点设在坐标为(5,6)或(6,5)的网格点上时,能使建设费用最省,即为最优的方案。如图3: 图3 5.2下面计算只有两个转弯点且转弯点在网格时的情况 5.2.1判断公路的大致走向 5.2.1.1 公路在直线AB的上方 以直线AB为对称轴,上方区域的单位建设费用要低于其下方对应区域的单位建设费用。如图4所示,若有某段公路在直线AB的下方,则以直线AB为对称轴,得到与 其对称的公路。两公路长度相等,但下方价格明显高与上方,故公路应在直线AB的上方。 图4 5.2.1.2 公路呈向下趋势 若公路趋势如图5所示,路段 向上,水平或竖直,则连接 ,则易得公路 的建设费用低于A- P1- P2段的建设费用 图5 所以,我们得到公路的大致走向,如图6所示: 图6 5.2.2 建立模型 第一步:根据两点的位置关系,在网格点上任取两点 , ,如图7。根据直线两点式方程: ,得到直线A , , 的方程: A :(y–9)m = (m - 9)x :(y - n)(a - m)=(b - n)(x - m) (y - b)(9 - a)=-b ( x - a) 图7 第二步:根据直线方程可求得直线A 与x=i(i=0、1、2…… )和y=j(j=yp……8、 9)的所有交点,并按x从小到大的排序,即: ( , )(i=1,2,3,4……) 取( , )和( , )则可以根据它们的中点得到这两点的路段需要的加权权重,即: 第3步:对于 有 ,累加得到A 段公路的费用,同理得到 , 段公路的费用。 故整条公路的总费用表达式为: 5.2.2 软件求解 5.2.2.1当有两个转弯点时 编写Matlab编程,利用枚举法,得到所有可能得到的两个转弯点的情况时所需要的总建设费用W,程序见chengxuer,分析流程图如图8: 图8 求两个转弯点在网格点上时的流程图 经过分析,得出使得W最小的两点坐标为(4,7)和(7,4),此时, =14.6241百万元。 所以,将两转弯点分别设在坐标为(4,7)和(7,4)的网格点上时,能使建设费用最省,即为最优的方案。如图9: 图9 两转弯点在网格点上时的最优方案 5.3至多只能有2个转弯点且转弯点只能建网格线上。 5.3.1 建立模型 5.3.1.1 有两个转弯点 在第二问的基础上,我们可推出公路的大致走向,如图10 图10 公路的大致走向 第 1 步:根据两点的位置关系,在网格点上任取两点 , ,得到直线A , , 的方程: A :(y–9)m = (m - 9)x :(y - n)(a - m)=(b - n)(x - m) :(y - b)(9 - a)=-b ( x - a) 第 2 步:在坐标满足条件的情况下,如果n为整数根据直线方程可求得直线A 与x=i(i=0、1、2…… )和y=j(j=yp……8、9)的所有交点,并按x从小到大的排序,即: ( , )(i=1,2,3,4……) 取( , )和( , )则可以根据它们的中点得到这两点的路段需要的加权权重,即: 若n为小数,则取n的整数部分再加1,重复上述步骤; 如果m为整数,同样方法得到( , ),若m为小数,则取m的整数部分,然后计算得到( , )。 第3步:对于 有 ,累加得到A 段公路的费用,同理得到 , 段公路的费用。 故整条公路的总费用表达式为: 5.3.1.2 有一个转弯点 与设立两个转弯点相比,只需在网格线上任取一个点P,思想和方法都与之相同 5.3.2 软件求解 5.3.2.1 有两个转弯点 以只有两个转弯点且转弯点在网格点上的程序为基础,将循环中的步长设为0.01,在m或n为整数且a或b为整数的条件下,寻找最优解。程序见chengxusan,流程图以A 为例显示了取整与求取线段与网格线交点的过程,其他步骤同上。如图11。 图11 两个转弯点下的部分流程图 5.3.2.2设一个转弯点 编程思路与设两个转弯点的情况相同,程序见chengxusi。 5.3.3 结果 设一个转弯点时,使W最小的转弯点坐标为(6,4.57), =14.6989; 设两个转弯点时,使W最小的转弯点坐标为(3.62,7)和(7,3.62), =14.63。 所以最优方案为:设立两个转弯点,其坐标分别是(3.62,7)和(7,3.62) 5.4至多只能有2个转弯点但转弯点可以建在所示区域的任何位置。 该问中,转弯点坐标都为实数,在问题二的基础上只需要改变x,y的步长,比较步长0.1和0.01,分析结果为步长是0.01时所花费用最省,即两个转弯点的坐标为(3.58,7.32),(7.32,3.58)时,建设费用为14.54百万元。 5.5 单位建设费用连续变化 5.5.1缩小转弯点所在区间 以AB所在直线为x轴,AB的中垂线为y轴建立平面直角坐标系。以点A、B焦点,任意画一椭圆,如图12: 图12 两圆的半径差为dr,当dr足够小时,我们可将②区域内的单位造价视为均匀的,设三个区域内的造价分别为 ,由条可知, , 是P沿椭圆逆时针转过某一微小弧度所对应位置, C,D分别是 B与圆②相交的两个点,分别计算路线A-P-B和路线A- -B所对应的总造价: + + + )+ + B)= P+PB)= 同理可证得: 以此类推可知将转弯点设在y轴上可使建设费用最省。在如图13所示的坐标系下,转弯点在直线y =x上 图13 转弯点的位置 5.5.2 建立模型 第一步:在线段上取极小的一段dS,此时,其建设费用可看作是均匀的,设此时 t = (1) 第二步:对线段上的任意一点(x , y),设其参数方程为: 且令x = x( z ) =z ; 第三步: 因为x = x( z ) =z ,所以 是公路所在直线的斜率,用k 表示,所以 ; (2) 第四步:根据直线两点式方程: ,得到直线AP、PB的直线方程: AP: PB: 由于点P在直线y = x上,所以: AP: (3) PB: (4) 第五步:对x积分,得到W的表达式: (5) 将(1)-(4)代入(5)得: (6) 所以,该问题转化求函数式(6)的最小值问题 以直线AB为对称轴,上方区域的单位建设费用要低于其下方对应区域的单位建设费用。所以,转弯点应选在直线y=x上且位于直线AB的上方,即m>4,可缩短程序运行的时间。 利用Matlab软件编程,以0.01为步长,解出W在区间[4,8.99]上的
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服