数学建模实验报告第十一章最短路问答

数学建模实验报告第十一章最短路问答
数学建模实验报告第十一章最短路问答

实验名称:第十一章最短路问题

一、实验内容与要求

掌握Dijkstra算法和Floyd算法,并运用这两种算法求一些最短路径的问题。

二、实验软件

MATLAB7.0

三、实验内容

1、在一个城市交通系统中取出一段如图所示,其入口为顶点v1,出口为顶点v8,每条弧段旁的数字表示通过该路段所需时间,每次转弯需要附加时间为3,求v1到v8的最短时间路径。

V1 1 V2 3 V3 1 V5 6 V6

V4 2 V7 4 V8

程序:

function y=bijiaodaxiao(f1,f2,f3,f4)

v12=1;v23=3;v24=2;v35=1;v47=2;v57=2;v56=6;v68=3;v78=4; turn=3;

f1=v12+v23+v35+v56+turn+v68;

f2=v12+v23+v35+turn+v57+turn+v78;

f3=v12+turn+v24+turn+v47+v78;

f4=v12+turn+v24+v47+turn+v57+turn+v56+turn+v68; min=f1;

if f2

min=f2;

end

if f3

min=f3;

end

if f4

min=f4;

end

min

f1

f2

f3

f4

实验结果:

v1到v8的最短时间路径为15,路径为1-2-4-7-8.

2、求如图所示中每一结点到其他结点的最短路。V110 V3V59 V6

floy.m中的程序:

function[D,R]=floyd(a)

n=size(a,1);

D=a

for i=1:n

for j=1:n

R(i,j)=j;

end

end

R

for k=1:n

for i=1:n

for j=1:n

if D(i,k)+D(k,j)

D(i,j)=D(i,k)+D(k,j);

R(i,j)=R(i,k);

end

end

end

k

D

R

end

程序:

>> a=[0 3 10 inf inf inf inf inf;3 0 inf 5 inf inf inf inf;10 inf 0 6 inf inf inf inf;inf 5 6 0 4 inf 10 inf ;

inf inf inf 4 0 9 5 inf ;inf inf inf inf 9 0 3 4;inf inf inf 10 5 3 0 6;inf inf inf inf inf 4 6 0;];

[D,R]=floyd(a)

实验结果:

D =

0 3 10 Inf Inf Inf Inf Inf

3 0 Inf 5 Inf Inf Inf Inf

10 Inf 0 6 Inf Inf Inf Inf

Inf 5 6 0 4 Inf 10 Inf Inf Inf Inf 4 0 9 5 Inf

Inf Inf Inf Inf 9 0 3 4

Inf Inf Inf 10 5 3 0 6 Inf Inf Inf Inf Inf 4 6 0

R =

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

. k =

1

D =

0 3 10 Inf Inf Inf Inf Inf

3 0 13 5 Inf Inf Inf Inf

10 13 0 6 Inf Inf Inf Inf

Inf 5 6 0 4 Inf 10 Inf

Inf Inf Inf 4 0 9 5 Inf

Inf Inf Inf Inf 9 0 3 4

Inf Inf Inf 10 5 3 0 6

Inf Inf Inf Inf Inf 4 6 0

R =

1 2 3 4 5 6 7 8

1 2 1 4 5 6 7 8

1 1 3 4 5 6 7 8

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8 k =

2

D =

0 3 10 8 Inf Inf Inf Inf

3 0 13 5 Inf Inf Inf Inf

10 13 0 6 Inf Inf Inf Inf

8 5 6 0 4 Inf 10 Inf

Inf Inf Inf 4 0 9 5 Inf

Inf Inf Inf Inf 9 0 3 4

Inf Inf Inf 10 5 3 0 6 Inf Inf Inf Inf Inf 4 6 0

R =

1 2 3 2 5 6 7 8

1 2 1 4 5 6 7 8

1 1 3 4 5 6 7 8

2 2

3

4

5

6

7 8

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

k =

3

D =

0 3 10 8 Inf Inf Inf Inf

3 0 13 5 Inf Inf Inf Inf

10 13 0 6 Inf Inf Inf Inf

8 5 6 0 4 Inf 10 Inf

Inf Inf Inf 4 0 9 5 Inf

Inf Inf Inf Inf 9 0 3 4

Inf Inf Inf 10 5 3 0 6 Inf Inf Inf Inf Inf 4 6 0

R =

1 2 3 2 5 6 7 8

1 2 1 4 5 6 7 8

1 1 3 4 5 6 7 8

2 2

3

4

5

6

7 8

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

k =

4

D =

0 3 10 8 12 Inf 18 Inf

3 0 11 5 9 Inf 15 Inf

10 11 0 6 10 Inf 16 Inf

8 5 6 0 4 Inf 10 Inf

12 9 10 4 0 9 5 Inf

Inf Inf Inf Inf 9 0 3 4

18 15 16 10 5 3 0 6

Inf Inf Inf Inf Inf 4 6 0

R =

1 2 3 2 2 6 2 8

1 2 4 4 4 6 4 8

1 4 3 4 4 6 4 8

2 2

3

4

5

6

7 8

4 4 4 4

5

6

7 8

1 2 3 4 5 6 7 8

4 4 4 4

5

6

7 8

1 2 3 4 5 6 7 8 k =

5

D =

0 3 10 8 12 21 17 Inf

3 0 11 5 9 18 1

4 Inf

10 11 0 6 10 19 15 Inf

8 5 6 0 4 13 9 Inf

12 9 10 4 0 9 5 Inf

21 18 19 13 9 0 3 4

17 14 15 9 5 3 0 6

Inf Inf Inf Inf Inf 4 6 0

R =

1 2 3 2 2 2 2 8

1 2 4 4 4 4 4 8

1 4 3 4 4 4 4 8

2 2

3

4

5 5 5 8

4 4 4 4

5

6

7 8

5 5 5 5 5

6

7 8

5 5 5 5 5

6

7 8

1 2 3 4 5 6 7 8 k =

6

D =

0 3 10 8 12 21 17 25

3 0 11 5 9 18 1

4 22

10 11 0 6 10 19 15 23

8 5 6 0 4 13 9 17

12 9 10 4 0 9 5 13

21 18 19 13 9 0 3 4

17 14 15 9 5 3 0 6

25 22 23 17 13 4 6 0 R =

1 2 3 2 2 2 2 2

1 2 4 4 4 4 4 4

1 4 3 4 4 4 4 4

2 2

3

4

5 5 5 5

4 4 4 4

5

6

7 6

5 5 5 5 5

6

7 8

5 5 5 5 5

6

7 8

6 6 6 6 6 6

7 8

. k =

7

D =

0 3 10 8 12 20 17 23

3 0 11 5 9 17 1

4 20

10 11 0 6 10 18 15 21

8 5 6 0 4 12 9 15

12 9 10 4 0 8 5 11

20 17 18 12 8 0 3 4

17 14 15 9 5 3 0 6

23 20 21 15 11 4 6 0

R =

1 2 3 2 2 2 2 2

1 2 4 4 4 4 4 4

1 4 3 4 4 4 4 4

2 2

3

4

5 5 5 5

4 4 4 4

5 7 7 7

7 7 7 7 7 6 7 8

5 5 5 5 5

6

7 8

7 7 7 7 7 6 7 8 k =

8

D =

0 3 10 8 12 20 17 23

3 0 11 5 9 17 1

4 20

10 11 0 6 10 18 15 21

8 5 6 0 4 12 9 15

12 9 10 4 0 8 5 11

20 17 18 12 8 0 3 4

17 14 15 9 5 3 0 6

23 20 21 15 11 4 6 0

R =

1 2 3 2 2 2 2 2

1 2 4 4 4 4 4 4

1 4 3 4 4 4 4 4

2 2

3

4

5 5 5 5

4 4 4 4

5 7 7 7

7 7 7 7 7 6 7 8

5 5 5 5 5

6

7 8

7 7 7 7 7 6 7 8

D =

0 3 10 8 12 20 17 23

3 0 11 5 9 17 1

4 20

10 11 0 6 10 18 15 21

8 5 6 0 4 12 9 15

12 9 10 4 0 8 5 11

20 17 18 12 8 0 3 4

17 14 15 9 5 3 0 6

23 20 21 15 11 4 6 0 R =

1 2 3 2 2 2 2 2

1 2 4 4 4 4 4 4

1 4 3 4 4 4 4 4

2 2

3

4

5 5 5 5

4 4 4 4

5 7 7 7

7 7 7 7 7 6 7 8

5 5 5 5 5

6

7 8

7 7 7 7 7 6 7 8

四、实验体会

数学建模实验报告

数学建模实验报告

一、实验目的 1、通过具体的题目实例,使学生理解数学建模的基本思想和方法,掌握 数学建模分析和解决的基本过程。 2、培养学生主动探索、努力进取的的学风,增强学生的应用意识和创新 能力,为今后从事科研工作打下初步的基础。 二、实验题目 (一)题目一 1、题目:电梯问题有r个人在一楼进入电梯,楼上有n层。设每个 乘客在任何一层楼出电梯的概率相同,试建立一个概率模型,求直 到电梯中的乘客下完时,电梯需停次数的数学期望。 2、问题分析 (1)由于每位乘客在任何一层楼出电梯的概率相同,且各种可能的情况众多且复杂,难于推导。所以选择采用计算机模拟的 方法,求得近似结果。 (2)通过增加试验次数,使近似解越来越接近真实情况。 3、模型建立 建立一个n*r的二维随机矩阵,该矩阵每列元素中只有一个为1,其余都为0,这代表每个乘客在对应的楼层下电梯(因为每 个乘客只会在某一层下,故没列只有一个1)。而每行中1的个数 代表在该楼层下的乘客的人数。 再建立一个有n个元素的一位数组,数组中只有0和1,其中1代表该层有人下,0代表该层没人下。 例如: 给定n=8;r=6(楼8层,乘了6个人),则建立的二维随机矩阵及与之相关的应建立的一维数组为: m = 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 c = 1 1 0 1 0 1 1 1 4、解决方法(MATLAB程序代码):

n=10;r=10;d=1000; a=0; for l=1:d m=full(sparse(randint(1,r,[1,n]),1:r,1,n,r)); c=zeros(n,1); for i=1:n for j=1:r if m(i,j)==1 c(j)=1; break; end continue; end end s=0; for x=1:n if c(x)==1 s=s+1; end continue; end a=a+s; end a/d 5、实验结果 ans = 6.5150 那么,当楼高11层,乘坐10人时,电梯需停次数的数学期望为6.5150。 (二)题目二 1、问题:某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6 千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千 克,工人20名,可获利9万元.今工厂共有原料60千克,工人 150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何 安排生产计划,即两种饮料各生产多少使获利最大.进一步讨 论: 1)若投资0.8万元可增加原料1千克,问应否作这项投资. 2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划. 2、问题分析 (1)题目中共有3个约束条件,分别来自原料量、工人数与甲饮料产量的限制。 (2)目标函数是求获利最大时的生产分配,应用MATLAB时要转换

数学建模实验报告第十一章最短路问答

实验名称:第十一章最短路问题 一、实验内容与要求 掌握Dijkstra算法和Floyd算法,并运用这两种算法求一些最短路径的问题。 二、实验软件 MATLAB7.0 三、实验内容 1、在一个城市交通系统中取出一段如图所示,其入口为顶点v1,出口为顶点v8,每条弧段旁的数字表示通过该路段所需时间,每次转弯需要附加时间为3,求v1到v8的最短时间路径。 V1 1 V2 3 V3 1 V5 6 V6 V4 2 V7 4 V8

程序: function y=bijiaodaxiao(f1,f2,f3,f4) v12=1;v23=3;v24=2;v35=1;v47=2;v57=2;v56=6;v68=3;v78=4; turn=3; f1=v12+v23+v35+v56+turn+v68; f2=v12+v23+v35+turn+v57+turn+v78; f3=v12+turn+v24+turn+v47+v78; f4=v12+turn+v24+v47+turn+v57+turn+v56+turn+v68; min=f1; if f2

f4 实验结果: v1到v8的最短时间路径为15,路径为1-2-4-7-8. 2、求如图所示中每一结点到其他结点的最短路。V110 V3V59 V6

floy.m中的程序: function[D,R]=floyd(a) n=size(a,1); D=a for i=1:n for j=1:n R(i,j)=j; end end R for k=1:n for i=1:n for j=1:n if D(i,k)+D(k,j)

数学建模与数学实验习题

数学建模与数学实验课程总结与练习内容总结 第一章 1.简述数学建模的一般步骤。 2.简述数学建模的分类方法。 3.简述数学模型与建模过程的特点。 第二章 4.抢渡长江模型的前3问。 5.补充的输油管道优化设计。 6.非线性方程(组)求近似根方法。 第三章 7.层次结构模型的构造。 8.成对比较矩阵的一致性分析。 第五章 9.曲线拟合法与最小二乘法。 10 分段插值法。 第六章 11 指数模型及LOGISTIC模型的求解与性质。 12.VOLTERRA模型在相平面上求解及周期平均值。 13 差分方程(组)的平衡点及稳定性。 14 一阶差分方程求解。 15 养老保险模型。

16 金融公司支付基金的流动。 17 LESLLIE 模型。 18 泛函极值的欧拉方法。 19 最短路问题的邻接矩阵。 20 最优化问题的一般数学描述。 21 马尔科夫过程的平衡点。 22 零件的预防性更换。 练习集锦 1. 在层次分析法建模中,我们介绍了成对比较矩阵概念,已知矩阵P 是成对比较矩阵 31/52a b P c d e f ?? ??=?????? ,(1)确定矩阵P 的未知元素。 (2)求 P 模最大特征值。 (3)分析矩阵P 的一致性是否可以接受(随机一致性指标RI取0.58)。 2. 在层次分析法建模中,我们介绍了成对比较矩阵概念,已知矩阵P 是三阶成对比较矩阵 322P ? ???=?????? ,(1)将矩阵P 元素补全。 (2)求P 模最 大特征值。 (3)分析矩阵P 的一致性是否可以接受。 3.考虑下表数据

(1)用曲改直的思想确定经验公式形式。 (2)用最小二乘法确定经验公式系数。 4.. 考虑微分方程 (0.2)0.0001(0.4)0.00001dx x xy dt dy y xy dt εε?=--????=-++?? (1)在像平面上解此微分方程组。(2)计算0ε=时的周期平均值。(3)计算0.1ε=时,y 的周期平均值占总量的周期平均值的比例增加了多少? 5考虑种群增长模型 '()(1/1000),(0)200x t kx x x =-= (1)求种群量增长最快的时刻。(2)根据下表数据估计参数k 值。 6. 布均匀,若环保部门及时发现并从某时刻起切断污染源,并更新湖水(此处更新指用新鲜水替换污染水),设湖水更新速率是 3 (m r s 单位:)。 (1) 试建立湖中污染物浓度随时间下降的数学模型? 求出污染物浓度降为控制前的5%所需要的时间。 7. 假如保险公司请你帮他们设计一个险种:35岁起保,每月交费400元,60岁开始领取养老金,每月养老金标准为3600元,请估算该保险费月利率为多少(保留到小数点后5位)? 8. 某校共有学生40000人,平时均在学生食堂就餐。该校共有,,A B C 3 个学生食堂。经过近一年的统计观测发现:A 食堂分别有10%,25%的学生经常去B ,C 食堂就餐,B 食堂经常分别有15%,25%的同学去

数学建模实验报告

数学建模实验报告 实验一计算课本251页A矩阵的最大特征根和最大特征向量 1 实验目的 通过Wolfram Mathematica软件计算下列A矩阵的最大特征根和最大特征向量。 2 实验过程 本实验运用了Wolfram Mathematica软件计算,计算的代码如下:

3 实验结果分析 从代码的运行结果,可以得到最大特征根为5.07293,最大特征向量为 {{0.262281},{0.474395},{0.0544921},{0.0985336},{0.110298}},实验结果 与标准答案符合。

实验二求解食饵-捕食者模型方程的数值解 1实验目的 通过Wolfram Mathematica或MATLAB软件求解下列习题。 一个生物系统中有食饵和捕食者两种种群,设食饵的数量为x(t),捕食者为y(t),它们满足的方程组为x’(t)=(r-ay)x,y’(t)=-(d-bx)y,称该系统为食饵-捕食者模型。当r=1,d=0.5,a=0.1,b=0.02时,求满足初始条件x(0)=25,y(0)=2的方程的数值解。 2 实验过程 实验的代码如下 Wolfram Mathematica源代码: Clear[x,y] sol=NDSolve[{x'[t] (1-0.1y[t])x[t],y'[t] 0.02x[t]y[t]-0.5y[t],x[0 ] 25,y[0] 2},{x[t],y[t]},{t,0,100}] x[t_]=x[t]/.sol y[t_]=y[t]/.sol g1=Plot[x[t],{t,0,20},PlotStyle->RGBColor[1,0,0],PlotRange->{0,11 0}] g2=Plot[y[t],{t,0,20},PlotStyle->RGBColor[0,1,0],PlotRange->{0,40 }] g3=Plot[{x[t],y[t]},{t,0,20},PlotStyle→{RGBColor[1,0,0],RGBColor[ 0,1,0]},PlotRange->{0,110}] matlab源代码 function [ t,x ]=f ts=0:0.1:15; x0=[25,2]; [t,x]=ode45('shier',ts,x0); End function xdot=shier(t,x)

数学建模与数学实验课后习题答案

P59 4.学校共1002名学生,237人住在A 宿舍,333人住在B 宿舍,432人住在C 宿舍。学生要组织一个10人的委员会,使用Q 值法分配各宿舍的委员数。 解:设P 表示人数,N 表示要分配的总席位数。i 表示各个宿舍(分别取A,B,C ),i p 表示i 宿舍现有住宿人数,i n 表示i 宿舍分配到的委员席位。 首先,我们先按比例分配委员席位。 A 宿舍为:A n = 365.21002 10237=? B 宿舍为:B n =323.31002 10333=? C 宿舍为:C n =311.4100210432=? 现已分完9人,剩1人用Q 值法分配。 5.93613 22372 =?=A Q 7.92404 33332 =?=B Q 2.93315 44322 =?=C Q 经比较可得,最后一席位应分给A 宿舍。 所以,总的席位分配应为:A 宿舍3个席位,B 宿舍3个席位,C 宿舍4个席位。

商人们怎样安全过河

由上题可求:4个商人,4个随从安全过河的方案。 解:用最多乘两人的船,无法安全过河。所以需要改乘最多三人乘坐的船。 如图所示,图中实线表示为从开始的岸边到河对岸,虚线表示从河对岸回来。商人只需要按照图中的步骤走,即可安全渡河。总共需要9步。

P60 液体在水平等直径的管内流动,设两点的压强差ΔP 与下列变量有关:管径d,ρ,v,l,μ,管壁粗糙度Δ,试求ΔP 的表达式 解:物理量之间的关系写为为()?=?,,,,,μρ?l v d p 。 各个物理量的量纲分别为 []32-=?MT L p ,[]L d =,[]M L 3-=ρ,[]1-=LT v ,[]L l =,[]11--=MT L μ,Δ是一个无量纲量。 ???? ??????-----=?0310100011110010021113173A 其中0=Ay 解得 ()T y 00012111---=, ()T y 00101102--=, ()T y 01003103--=, ()T y 10000004= 所以 l v d 2111---=ρπ,μρπ112--=v ,p v ?=--313ρπ,?=4π 因为()0,,,,,,=??p l v d f μρ与()0,,,4321=ππππF 是等价的,所以ΔP 的表达式为: ()213,ππψρv p =?

数学建模与数学实验报告

数学建模与数学实验报告 指导教师__郑克龙___ 成绩____________ 组员1:班级______________ 姓名______________ 学号_____________ 组员2:班级______________ 姓名______________ 学号______________ 实验1.(1)绘制函数cos(tan())y x π=的图像,将其程序及图形粘贴在此。 >> x=-pi:0.01:pi; >> y=cos(tan(pi*x)); >> plot(x,y) -4 -3 -2 -1 1 2 3 4 -1-0.8-0.6-0.4-0.200.20.40.60.8 1 (2)用surf,mesh 命令绘制曲面2 2 2z x y =+,将其程序及图形粘贴在此。(注:图形注意拖放,不要太大)(20分) >> [x,y]=meshgrid([-2:0.1:2]); >> z=2*x.^2+y.^2; >> surf(x,y,z)

-2 2 >> mesh(x,y,z) -2 2 实验2. 1、某校60名学生的一次考试成绩如下:

93 75 83 93 91 85 84 82 77 76 77 95 94 89 91 88 86 83 96 81 79 97 78 75 67 69 68 84 83 81 75 66 85 70 94 84 83 82 80 78 74 73 76 70 86 76 90 89 71 66 86 73 80 94 79 78 77 63 53 55 1)计算均值、标准差、极差、偏度、峰度,画出直方图;2)检验分布的正态性;3)若检验符合正态分布,估计正态分布的参数并检验参数. (20分) 1) >> a=[93 75 83 93 91 85 84 82 77 76 77 95 94 89 91 88 86 83 96 81 79 97 78 75 67 69 68 84 83 81 75 66 85 70 94 84 83 82 80 78 74 73 76 70 86 76 90 89 71 66 86 73 80 94 79 78 77 63 53 55]; >> pjz=mean(a) pjz = 80.1000 >> bzhc=std(a) bzhc = 9.7106 >> jc=max(a)-min(a) jc = 44 >> bar(a)

数学建模实验

数学建模课程实验报告 专题实验7 班级数财系1班学号2011040123 丛文 实验题目常微分方程数值解 实验目的 1.掌握用MATLAB求微分方程初值问题数值解的方法; 2.通过实例学习微分方程模型解决简化的实际问题; 3.了解欧拉方法和龙格库塔方法的基本思想。 实验容 (包括分 析过程、 方法、和 代码,结 果) 1. 用欧拉方法和龙格库塔方法求下列微分方程初值问题的数值 解,画出解的图形,对结果进行分析比较 解;M文件 function f=f(x,y) f=y+2*x; 程序; clc;clear; a=0;b=1; %求解区间 [x1,y_r]=ode45('f',[a b],1); %调用龙格库塔求解函数求解数值 解; %% 以下利用Euler方法求解 y(1)=1;N=100;h=(b-a)/N; x=a:h:b;

for i=1:N y(i+1)=y(i)+h*f(x(i),y(i)); end figure(1) plot(x1,y_r,'r*',x,y,'b+',x,3*exp(x)-2*x-2,'k-');%数值解与真解图 title('数值解与真解图'); legend('RK4','Euler','真解'); xlabel('x');ylabel('y'); figure(2)

plot(x1,abs(y_r-(3*exp(x1)-2*x1-2)),'k-');%龙格库塔方法的误差 title('龙格库塔方法的误差') xlabel('x');ylabel('Error'); figure(3) plot(x,abs(y-(3*exp(x)-2*x-2)),'r-')%Euler方法的误差 title('Euler方法的误差') xlabel('x');ylabel('Error');

数学建模实验报告

matlab 试验报告 姓名 学号 班级 问题:.(插值) 在某海域测得一些点(x,y)处的水深z 由下表给出,船的吃水深度为5英尺,在矩形区域(75,200)*(-50,150)里的哪些地方船要避免进入。 问题的分析和假设: 分析:本题利用插值法求出水深小于5英尺的区域,利用题中所给的数据,可以求出通过空间各点的三维曲面。随后,求出水深小于5英尺的范围。 基本假设:1表中的统计数据均真实可靠。 2矩形区域外的海域不对矩形海域造成影响。 符号规定:x ―――表示海域的横向位置 y ―――表示海域的纵向位置 z ―――表示海域的深度 建模: 1.输入插值基点数据。 2.在矩形区域(75,200)×(-50,150)作二维插值,运用三次插值法。 3.作海底曲面图。 4.作出水深小于5的海域范围,即z=5的等高线。 x y z 129 140 103.5 88 185.5 195 105 7.5 141.5 23 147 22.5 137.5 85.5 4 8 6 8 6 8 8 x y z 157.5 107.5 77 81 162 162 117.5 -6.5 -81 3 56.5 -66.5 84 -33.5 9 9 8 8 9 4 9

求解的Matlab程序代码: x=[129 140 103.5 88 185.5 195 105.5 157.5 107.5 77 81 162 162 117.5]; y=[7.5 141.5 23 147 22.5 137.5 85.5 -6.5 -81 3 56.5 -66.5 84 -33.5]; z=[-4 -8 -6 -8 -6 -8 -8 -9 -9 -8 -8 -9 -4 -9]; cx=75:0.5:200; cy=-50:0.5:150; cz=griddata(x,y,z,cx,cy','cubic'); meshz(cx,cy,cz),rotate3d xlabel('X'),ylabel('Y'),zlabel('Z') %pause figure(2),contour(cx,cy,cz,[-5 -5]);grid hold on plot(x,y,'+') xlabel('X'),ylabel('Y') 计算结果与问题分析讨论: 运行结果: Figure1:海底曲面图:

数学建模运输问题

运输问题 摘要 本文主要研究的是货物运输的最短路径问题,利用图论中的Floyd算法、Kruskal算法,以及整数规划的方法建立相关问题的模型,通过matlab,lingo编程求解出最终结果。 关于问题一,是一个两客户间最短路程的问题,因此本文利用Floyd算法对其进行分析。考虑到计算的方便性,首先,我们将两客户之间的距离输入到网络权矩阵中;然后,逐步分析出两客户间的最短距离;最后,利用Matlab软件对其进行编程求解,运行得到结果:2-3-8-9-10总路程为85公里。 关于问题二,运输公司分别要对10个客户供货,必须访问每个客户,实际上是一个旅行商问题。首先,不考虑送货员返回提货点的情形,本文利用最小生成树问题中的Kruskal算法,结合题中所给的邻接矩阵,很快可以得到回路的最短路线: 1-5-7-6-3-4-8-9-10-2;然后利用问题一的Floyd算法编程,能求得从客户2到客户1(提货点)的最短路线是:2-1,路程为50公里。即最短路线为:1-5-7-6-3-4-8-9-10-2-1。但考虑到最小生成树法局限于顶点数较少的情形,不宜进一步推广,因此本文建立以路程最短为目标函数的整数规划模型;最后,利用LINGO软件对其进行编程求解,求解出的回路与Kruskal算法求出的回路一致。 关于问题三,是在每个客户所需固定货物量的情况下,使得行程之和最短。这样只要找出两条尽可能短的回路,并保证每条线路客户总需求量在50个单位以内即可。因此我们在问题二模型的基础上进行改进,以货车容量为限定条件,建立相应的规划模型并设计一个简单的寻路算法,对于模型求解出来的结果,本文利用Kruskal算法结合题中所给的邻接矩阵进行优化。得到优化结果为:第一辆车:1-5-2-3-4-8-9-1,第二辆车:1-7-6-9-10-1,总路程为280公里。 关于问题四,在问题一的基础上我们首先用Matlab软件编程确定提货点到每个客户点间的最短路线,然后结合一些限定条件建立一个目标模型,设计一个较好的解决方案进行求解可得到一种很理想的运输方案。根据matlab运行结果分析得出4条最优路线分别为:1-5-2,1-4-3-8,1-7-6,1-9-10。最短总路线为245公里,最小总费用为645。 关键词: Floyd算法 Kruskal算法整数规划旅行商问题 一、问题重述 某运输公司为10个客户配送货物,假定提货点就在客户1所在的位置,从第i个客户到第j个客户的路线距离(单位公里)用下面矩阵中的(,) i j(,1,,10) i j=位置上的数表示(其中∞表示两个客户之间无直接的路线到达)。 1、运送员在给第二个客户卸货完成的时候,临时接到新的调度通知,让他先给客户10送 货,已知送给客户10的货已在运送员的车上,请帮运送员设计一个到客户10的尽可能短的行使路线(假定上述矩阵中给出了所有可能的路线选择)。 2、现运输公司派了一辆大的货车为这10个客户配送货物,假定这辆货车一次能装满10个 客户所需要的全部货物,请问货车从提货点出发给10个客户配送完货物后再回到提货点所行使的尽可能短的行使路线?对所设计的算法进行分析。 3、现因资源紧张,运输公司没有大货车可以使用,改用两辆小的货车配送货物。每辆小

数学建模实验报告(1)

四川师范大学数学与软件科学学院 实验报告 课程名称:数学建模 指导教师:陈东 班级:_2008级2班_____________ 学号:__2008060244___________ 姓名:___邢颖________ 总成绩:______________

数学与软件科学学院 实验报告 学期:_2009__ 年至2010 _年____ 第_ 二___ 学期 2010 年 4 月 1 _日 课程名称:_数学建模__ 专业:数学与应用数学____ 2008__ _级_ 2 ___班 实验编号: 1 实验项目_Matlab 入门_ 指导教师 陈东 姓名: 邢颖 ____ 学号: 2008060244 一、实验目的及要求 实验目的: 实验要求: 二、实验内容 (1)用起泡法对10个数由小到大排序. 即将相邻两个数比较,将小的调到前头. (2)有一个 4*5 矩阵,编程求出其最大值及其所处的位置. (3)编程求 (4)一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下. 求它在第10次落地时,共经过多少米?第10次反弹有多高? (5)有一函数 ,写一程序,输入自变量的值,输出函数值. 三、实验步骤(该部分不够填写.请填写附页) (2) x=[1 6 2 7 6;4 6 1 3 2;1 2 3 4 7;8 1 4 6 3]; t=x(1,1); for i=1:4 for j=1:5 if x(i,j)>t t=x(i,j); a=[i,j]; end ∑=20 1! n n y xy x y x f 2sin ),(2 ++=

end end (3)程序1: x(1)=1; s=1; for n=2:20 x(n)=x(n-1)*n; s=s+x(n); end s 程序2; s=0,m=1; for n=2:20; m=m*n; s=s+m; end s 结果:s = 2.5613e+018 (4)程序 s=100 h=s/2 for n=2:10 s=s+2*h h=h/2 end s,h 结果:s = 299.6094 h = 0.0977 (5)程序: function f=fun1(x,y) f=x^2+sin(x*y)+2*y

数学建模模最短路

基于最短路问题的研究及应用令狐采学 姓名:Fanmeng 学号: 指导老师:

摘要 最短路问题是图论中的一大问题,对最短路的研究在数学建模和实际生活中具有很重要的实际意义,介绍最短路问题的定义及这类问题的解决办法Dijkstra算法,并且能够在水渠修建实例运用到此数学建模的方法,为我们解决这类图论问题提供了基本思路与方法。 关键字数学建模最短路问题Dijkstra算法水渠修建。

目录 第一章.研究背景1 第二章.理论基础2 2.1 定义2 2.2 单源最短路问题Dijkstra求解:2 2.2.1 局限性2 2.2.2 Dijkstra算法求解步骤2 2.2.3 时间复杂度2 2.3 简单样例3 第三章.应用实例4 3.1 题目描述4 3.2 问题分析4 3.3符号说明4 3.4 模型假设5 3.5模型建立与求解5 3.5.1模型选用5 3.5.2模型应用及求解5 3.6模型评价5 第四章. 参考文献5 第五章.附录6

第一章.研究背景 在现实生活中中,我们经常会遇到图类问题,图是一种有顶点和边组成,顶点代表对象,在示意图中我们经常使用点或者原来表示,边表示的是两个对象之间的连接关系,在示意图中,我们使用连接两点G点直接按的下端来表示。顶点的集合是V,边的集合是E的图记为G[V,E] ,连接两点u和v的边用e(u,v)表示[1]。最短问题是图论中的基础问题,也是解决图类问题的有效办法之一,在数学建模中会经常遇到,通常会把一个实际问题抽象成一个图,然后来进行求的接任意两点之间的最短距离。因此掌握最短路问题具有很重要的意义。

第二章.理论基础 2.1 定义 最短路问题(short-path problem ):若网络中的每条边都有一个数值(长度、成本、时间等),则找出两节点,(通常是源节点和目标节点)之间总权和最小的路径就是最短路问题。最短路问题是网络理论解决的典型问题之一,可用来解决管道铺设,线路安装,厂区布局和设备更新等实际问题[2]。 2.2 单源最短路问题Dijkstra 求解: 2.2.1局限性 Dijkstra 算法不能够处理带有负边的图,即图中任意两点之间的权值必须非负。 2.2.2Dijkstra 算法求解步骤 (1).先给图中的点进行编号,确定起点的编号。 (2).得到图的构成,写出写出图的矩阵 0000(,)(,) (,) (,) n n n n u u u u G u u u u = (3).根据要求求出发点S 到终点E 的最短距离,那么需要从当前没被访问过的结点集合 unvist={u | u {1,2,3...}}n ∈中找到一个距离已经标记的点的集合中vist={u | u {1,2,3...}}n ∈的最短距离,得到这个顶点; (4).利用这个顶点来松弛其它和它相连的顶点距离S 的值 (5).重复步骤(2)和(3),直到再也没有点可以用来松弛其它点,这样我们就得到了由起点S 到其它任意点的最短距离。 2.2.3时间复杂度 时间复杂度达到 2 ()O N

数学建模迭代实验报告(新)

非 线 性 迭 代 实 验 报 告 一、实验背景与实验目的 迭代是数学研究中的一个非常重要的工具,通过函数或向量函数由初始结点生成迭代结点列,也可通过函数或向量函数由初值(向量)生成迭代数列或向量列。 蛛网图也是一个有用的数学工具,可以帮助理解通过一元函数由初值生成的迭代数列的敛散性,也帮助理解平衡点(两平面曲线交点)的稳定性。 本实验在Mathematica 平台上首先利用蛛网图和迭代数列研究不动点的类型;其次通过蛛网图和迭代数列研究Logistic 映射,探索周期点的性质、认识混沌现象;第三通过迭代数列或向量列求解方程(组)而寻求有效的求解方法;最后,利用结点迭代探索分形的性质。 二、实验材料 2.1迭代序列与不动点 给定实数域上光滑的实值函数)(x f 以及初值0x ,定义数列 )(1n n x f x =+, ,2,1,0=n (2.2.1) }{n x 称为)(x f 的一个迭代序列。 函数的迭代是数学研究中的一个非常重要的思想工具,利用迭代序列可以研究函数)(x f 的不动点。 对函数的迭代过程,我们可以用几何图象来直观地显示它——“蜘蛛网”。运行下列Mathematica 程序: Clear[f] f[x_] := (25*x - 85)/(x + 3); (实验时需改变函数) Solve[f[x]==x , x] (求出函数的不动点) g1=Plot[f[x], {x, -10, 20}, PlotStyle -> RGBColor[1, 0, 0], DisplayFunction -> Identity]; g2=Plot[x, {x, -10, 10}, PlotStyle -> RGBColor[0, 1, 0], DisplayFunction -> Identity]; x0=5.5; r = {}; r0=Graphics[{RGBColor[0, 0, 1], Line[{{x0, 0}, {x0, x0}}]}]; For[i = 1, i <= 100, i++, r=Append[r, Graphics[{RGBColor[0, 0, 1], Line[{{x0, x0}, {x0, f[x0]}, {f[x0], f[x0]}}] }]]; x0=f[x0] ]; Show[g1, g2, r, r0, PlotRange -> {-1, 20}, (PlotRange 控制图形上下范围) DisplayFunction -> $DisplayFunction] x[0]=x0; x[i_]:=f[x[i-1]]; (定义序列) t=Table[x[i],{i,1,10}]//N ListPlot[t] (散点图) 观察蜘蛛网通过改变初值,你能得出什么结论? 如果只需迭代n 次产生相应的序列,用下列Mathematica 程序: Iterate[f_,x0_,n_Integer]:= Module[{ t={},temp= x0},AppendTo[t,temp]; For[i=1,i <= n, i++,temp= f[temp]; AppendTo[t,temp]]; t ] f[x_]:= (x+ 2/x)/2; Iterate[f,0.7,10]

数模实验报告

数学建模与实验实验报告 姓名:李明波 院系:仪器科学与工程学院 学号:22013108 老师:王峰

数学建模与实验实验报告 实验一 实验题目 (1)已知某平原地区的一条公路经过如下坐标所示的点,请采用样条插值绘出这条公路(不考虑 (2)对于上表给出的数据,估计公路长度。 实验过程 (1)第一问代码如下: X=[0,30,50,70,80,90,120,148,170,180,202,212,230,248,268,271,280,290,300,312,320,340,3 60,372,382,390,416,430,478]; Y=[80,64,47,42,48,66,80,120,121,138,160,182,200,208,212,210,200,196,188,186,200,184,1 88,200,202,240,246,280,296]; %给出坐标点 xx=0:1:478;%选取0~478内的点 yy=spline(X,Y,xx);%样条插值法找出曲线 plot(X,Y, 'p ',xx,yy, 'g ');%绘出曲线图 x=[440,420,380,360,340,320,314,280,240,200]; y=[308,334,328,334,346,356,360,392,390,400]; hold on xy=440:-1:200; yx=spline(x,y,xy); plot(x,y, 'p ',xy,yx, 'g '); 运行上述代码得到结果如下:

上图为所绘公路图 (2)代码如下: X=[0 30 50 70 80 90 120 148 170 180 202 212 230 248 268 271 280 290 300 312 320 340 360 372 382 390 416 430 478 440 420 380 360 340 320 314 280 240 200]; Y=[80 64 47 42 48 66 80 120 121 138 160 182 200 208 212 210 200 196 188 186 200 184 188 200 202 240 246 280 296 308 334 328 334 346 356 360 392 390 400]; for k=1:length(X)-1 len(k)=sqrt((X(k+1)-X(k))^2+(Y(k+1)-Y(k))^2); end; Len=sum(len);Len 运行得到结果如下: 即公路长为967.46米。

数学建模与数学实验

数学建模与数学实验 实验报告 班级: 数学师范153 姓名:付爽 学号:1502012060 实验名称: 数列极限与函数极限 基础实验 基础实验一数列极限与函数极限第一部分实验指导书解读

一、实验目的 从刘徽的割圆术、裴波那奇数列研究数列的收敛性并抽象出极限的定义;理解数列收敛的准则;理解函数极限与数列极限的关系。 二、实验使用软件 Mathematic 5、0 三.实验的基本理论即方法 1割圆术 中国古代数学家刘徽在《九章算术注》方田章圆田术中创造了割圆术计算圆周率π。刘徽先注意到圆内接正多边形的面积小于圆面积;其次,当将边数屡次加倍时,正多边形的面积增大,边数愈大则正多边形面积愈近于圆的面积。 “割之弥细,所失弥少。割之又割以至不可割,则与圆合体而无所失矣。”这几句话明确地表明了刘徽的极限思想。 以n S 表示单位圆的圆内接正1 23-?n 多边形面积,则其极限为 圆周率π。用下列Mathematica 程序可以从量与形两个角度考察数列{n S }的收敛情况: m=2;n=15;k=10; For[i=2,i<=n,i++, l[i_]:=N[2*Sin[Pi/(3*2^i)],k]; (圆

内接正1 23-?n 多边形边长) s[i_]:=N[3*2^(i-1)*l[i]*Sqrt[1-(l[i])^2/4],k]; (圆内接正1 23-?n 多边形面积) r[i_]:=Pi-s[i]; d[i_]:=s[i]-s[i-1]; Print[i," ",r[i]," ",l[i]," ",s[i]," ",d[i]] ] t=Table[{i,s[i]},{i,m,n}] (数组) ListPlot[t] (散点图) 2裴波那奇数列与黄金分割 由2110;1; 0--+===n n n F F F F F 有著名的裴波那奇数列}{n F 。 如果令n n n F F R 11 --=,由n F 递推公式可得出 11111/11---+=+=+=n n n n n n n R F F F F F R ,]251251[511 1 ++??? ? ??--??? ? ??+=n n n F ; 2 15lim lim 1 -==+∞ →∞ →n n n n n F F R 。 用下列Mathematica 程序可以从量与形两个角度考察数列{n R }的收敛情况: n=14,k=10; For[i=3,i<=n,i++, t1=(Sqrt[5]+1)/2; t2=(1-Sqrt[5])/2;

数学建模-实验报告11

《数学建模实验》实验报告 学号:______ 姓名: 实验十一:微分方程建模2 一只小船渡过宽为d的河流,目标是起点A 正对着的另一岸B点,已知河水流速w 与船在静水中的速度V2之比为k. 1?建立小船航线的方程,求其解析解; 2. 设d=100m,v i=1m/s,v2=2m/s,用数值解法求渡河所需时间、任意时刻小船的位置及航行曲线,作图,并与解析解比较。 一、问题重述 我们建立数学模型的任务有: 1. 由已给定的船速、水速以及河宽求出渡河的轨迹方程; 2. 已知船速、水速、河宽,求在任意时刻船的位置以及渡船所需要的时间。 二、问题分析 此题是一道小船渡河物理应用题,为典型的常微分方程模型,问题中船速、水速、河宽已经给定,由速度、时间、位移的关系,我们容易得到小船的轨迹方程,同时小船的起点和终点已经确定,给我们的常微分方程模型提供了初始条件。 三、模型假设 1?假设小船与河水的速度恒为定值v「V2 ,不考虑人为因素及各种自然原因; 2. 小船行驶的路线为连续曲线,起点为A,终点为B ; 3. 船在行驶过程中始终向着B点前进,即船速v2始终指向B ; 4. 该段河流为理想直段,水速w与河岸始终保持平行。 四、模型建立 y | B A 兀、 % \ * r v A X 如图,以A为原点,以沿河岸向右方向为x轴正向,以垂直河岸到B端方向为y轴正向建立平面直角坐标系。其中河水流速为v i,小船速度为V2,且w:v2 k,合速度为v,河宽为d,为72与直线AB的夹角。

V x V y 在t 时刻, 船 dx dt V i 小船在x 轴方向的位移为 x v 2 sin v 2 cos V i V 2 0,x(0) 0, y(0) ;(d y) 0. \ (d y) d y ______ 2 2 ' x dy v 2 cos 由(2)/(1)得到dx y(0) v-1 v 2 sin 0. dx In (2) (i )题 dx 对上式求倒数得 dx dy x ,在y 轴方向上的位移为y ,则t 时刻, 方向 的速度 模型求解 v 2 sin V 1 v 2 co s —, 则上式可化为 dx d y dy d ?dp pdy ydp ,代入上式, k J p 2 整理,得 P 2 | ln| d Cy | 也就是 x 2 (d y )2 y P (d y ) dp P 2 kdy ,积分可得 y C k ( ------- )k ,代入 d y x d y d y 2 0, y 0 d k (d y )k (d y )k d k (见附 录) ,对该情况下的微分方程的数值解进行分 60.0000 6.5451 98.2803 60.1000 6.4519 98.3319 60.2000 6.3585 98.3827 60.3000 6.2649 98.4327 60.4000 6.1711 98.4819 60.5000 6.0771 98.5304 60.6000 5.9829 98.5782 60.7000 5.8886 98.6251 60.8000 5.7940 98.6713 60.9000 5.6993 98.7168 61.0000 5.6043 98.7615 61.1000 5.5092 98.8054 题 由初始条件,设计程序 析,结果如下(省略了前60s 的数据):

数学实验与数学建模实验报告④

数学实验与数学建模 实验报告 学院:信息科学与工程 专业班级:测控技术与仪器 姓名:缪金发 学号:0904130206 完成时间:2014 年12 月16日

习题五 1求解线性方程组 (1)???????=---=++=+--=--+.0532,0375,023,02432143243214321x x x x x x x x x x x x x x x (2) ???????=---=++=+--=-++0 53203750232302432143243214321x x x x x x x x x x x x x x x (1)代码如下: 所以x1=x2=x3=x4=1 (2)代码如下: 所以x1=x2=x3=x4=1 2求线性方程组的特解. (1)???????=----=++=+--=--+45322375222342432143243214321x x x x x x x x x x x x x x x (2)???????=---=++=+--=--+45322 375222342432143243214321x x x x x x x x x x x x x x x . (1)代码如下:

(2) 代码如下: 3求非齐次线性方程组的通解???????=+-=+-=++-=++-5 332 3 221 242143143214321x x x x x x x x x x x x x x 代码如下:

4当a 为何值时,方程组?????=++=++=++111 321 321321ax x x x ax x x x ax 无解、有唯一解、有无穷多解?当方程组有解时, 求通解. 代码如下: 当a=-2时无解,当a !=2时有解,此时x1=x2=x3=1/(a+2) 5 解方程: (1)1sin =-x x ; (2)14 22=-+x x x ; (3)1cos 2sin =+x x ; (4)232=-x xe x ;。 (1)代码如下:

数学建模与数学实验教学大纲

数学建模与数学实验教学大纲 (总学分:4总上课时数:48上机时数:16) 东南大学数学系 一、课程的性质与目的 本课程是面向理工科学生开设的一门选修课。本课程的教学目的,是让学生增加一些用数学的感性认识,初步掌握一些基本的建模方法、建模原理和数学软件的应用。学生通过这门课的学习,在数学知识的综合运用,将实际问题转化为数学问题的能力方面、创新能力、自学能力方面、发散性思维能力方面都能得到一定培养。 二、课程内容的教学要求 1.数学建模与数学实验概述:介绍数学建模与数学实验的基本概念,熟悉建模步骤。 2.初等模型:掌握用初等函数对实际问题的变化关系作简单的定量分析;熟悉用图示法对实际问题作定性分析。 3.量纲分析建模:掌握量纲分析原理,学会用量纲分析原理对一些物理问题作一些分析;了解数学中的无量纲化方法;掌握非线性方程求根的常用方法。 4.代数学模型:介绍矩阵在解决实际问题中的应用,熟悉层次分析法的建模步骤,学会用矩阵思想分析实际问题;掌握线性方程组的数值揭解法和矩阵特征值与特征向量的近似求法。 5.静态优化模型:了解微积分在解决实际问题中应用,掌握静态优化建模的基本步骤;熟悉微分、积分的数值方法。 6.数值分析法建模:掌握曲线拟合、插值的基本方法,学会用插值、拟合作数据处理,了解插值、拟合建模的大致过程。 7.常微分方程模型:熟悉微分方程建模的基本步骤,掌握线性微分方程建模基本方法,了解非线性微分方程模型的一些特殊性质;熟悉微分方程的数值解法。 8.差分方程模型:了解差分法的基本思想,学会建立实际问题的离散模型,掌握递推、迭代法的求解过程。 9.变分法模型:了解变分法的基本思想,熟悉变分法建模思路,能建立和求解一些简单的变分法模型。 10.优化模型:了解最优化思想,熟悉优化建模思路,能建立和求解一些简单的优化模型;会在适当的数学软件上实现优化模型。 三、上机实习要求 学会Matlab的基本操作、学会非线性方程求根,能在该软件平台上进行较大规模的数据处理及求解微分方程及优化问题。能根据具体实际问题在软件上实现小规模编程运算。

相关文档
最新文档