数学模型与数学建模实验三

上传人:飞*** 文档编号:47141274 上传时间:2018-06-30 格式:PDF 页数:10 大小:295.71KB
返回 下载 相关 举报
数学模型与数学建模实验三_第1页
第1页 / 共10页
数学模型与数学建模实验三_第2页
第2页 / 共10页
数学模型与数学建模实验三_第3页
第3页 / 共10页
数学模型与数学建模实验三_第4页
第4页 / 共10页
数学模型与数学建模实验三_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《数学模型与数学建模实验三》由会员分享,可在线阅读,更多相关《数学模型与数学建模实验三(10页珍藏版)》请在金锄头文库上搜索。

1、实验报告三学院名称:理学院专业年级: 姓名:学号:课程:数学模型与数学建模报告日期: 2015 年 11 月 24 日一、实验题目例 1.3.1 继续研究十字路口红绿灯问题十字路口绿灯亮灯30s, 最多可以通过多少辆汽车?继续研究问题:十字路口绿灯亮ts,最多可以通过多少辆汽车)(tnn?例 1.3.2 图像做旧练习:改变融合比例,尝试其它做旧效果例 1.3.3 画分形树二、实验目的数学建模是一种数学的思考方法,用数学的语言和方法,通过抽象、 简化建立能近似的 刻画并“解决”实际问题的路径。因此,模型一般具有明确的应用背景,针对性较强。为了使所研究的模型有相当的普适性,能解决一类问题,就需要在

2、模型确立之后,进一步分析推广,挖掘出模型更多的理论和实用的价值。三、问题陈述第一题问题要求很明确,求解的关键是绿灯亮后,汽车才启动,加速是过路口,要确定在给定时间内能通过多少辆车,就要考虑汽车加速度,从停车位置到路口的路程以及城市行车的最高限速要求。第二题数值图像是一个函数,4:Rf,确切的说,是定义在矩形区域3R的离散网格点iiyx ,上的函数,称iiyx ,为像素点iiijyxfz,为像素值,当1d时,f为灰度图像,当3d时,f为彩色图像,所以灰度图像就是一个矩阵ijzZ,彩色图像就是三个矩阵,分别表示三个颜色(红、绿、蓝RGB ) ,即三维数组表达,图像做旧是一种图像融合的方法,可以通过

3、两个矩阵的加权求和来实现。需要强调的是, 为解决问题编写程序不仅需要熟悉软件的变异特点,例如 MATLAB的矩阵语言,而且要密切结合问题的背景,利用其数学特征,才有可能编写出有效的程序,下面以编写分形树的绘图为例,说明如何利用分形树的自相似特征,将需要运行十多分时间的程序改进为几秒就能实现的程序。第三题分形是对不规则的难以用传统欧式几何描述的几何图形,例如, 海岸线和山川形状,多数分形图案的特点之一是从整体到局部的自相似性,从远距离观察, 海岸线和山川形状是极不规则的; 从近距离观察, 其局部形状又和整体形态相似,数学的分形树是按一定规律构造的的具有自相似特征的几何图案。我们从一个线段生成一个

4、分形树图案开始,学习几何最基本的元素“点”和“直线”的矩阵代数表达方式。四、模型及求解结果第一题记在时刻t第n辆车的位置为)(tSn,用数轴表示车辆行驶道路,数轴的正向为汽车行驶方向, 数轴原点为红绿灯的位置。于是当0)30(nS时,表明在第30s 第n辆车已通过红绿灯,否则,结论相反。于是,只要确定限速行驶模型)(tSn,就可以确定30s 内通过的汽车数量n。在单向、单车道、直行、限速等假设下,在数学模型与数学建模中给出了这个模型:.0),0(,)(2/)0(,),()(2/)0()(*2*2 *nnnnnnnnnnnn ttStttttaSttttvttaStS其中)(1()0(DLnSn

5、表示第n辆车在绿灯亮前的位置,ntn表示第n辆车的启动时间,nntavt/*表示第n辆车达到最大限速时间。参数驱车长mL5, 车距mD2,加速度2/2sma,最大限速2 */11smv。可以得到结果,绿灯亮30s,该路口单向,单车道可以通过17 辆车。这里直接研究限速行驶模型的应用。确定十字路口绿灯亮多长时间是城市交通管理中最基本的一个问题。直接利用限速行驶模型计算每辆车到达路口的时间,有数值结果可见,绿灯亮后汽车开始以最高限速穿过路口的时间在11s以后, 从第 6 辆车开始。 以后的车都以最高限速穿过路口。绿灯亮 30s 通过路口17 辆车中有11 辆车以最高限速穿过路口,如果绿灯只亮 15

6、s,则在通过7 辆车中只有两辆车以最高的限速穿过路口,显然这样的交通灯控制策略对于路口的利用率是不高的。如果是利用限速行驶模型得到通过的车辆数对绿灯亮的时间长度的依赖关系)(tnn,即得到当绿灯亮ts 时,单向、单车道通过的车辆数,对进一步的研究更方便。要写出这个分段函数, 推导并不困难, 但是有些繁琐。 但是在实际问题研究中找到显示表达式函数的机会非常少, 借助计算机编程, ;iyong 输入输出表达函数关系常常是唯一可取的办法。下面以这个简单问题为例尝试一下。一个基本的想法是,在有限时间内只能通过有限辆车,只要计算出n辆车通过路口的时间,再用规定的绿灯亮的时间长度为卡尺,就可以确定通过的车

7、辆数。算法(1)计算每辆汽车达到最大限速时间0t,以加速度通过路口时间1t和以最大限速通过路口时间2t。(2)比较0t和1t就可以确定这辆车实际通过路口的时间。(3)将充分多辆车通过路口的时间列出来,(用 find)确定通过路口时间小于绿灯亮的时间长度T的所有车号,其中最大者就是能够通过的车辆数,函数以pass.m 文件名存储。于是,只要输入T就会由函数pass(T)得到通过的车辆数。第二题1、图像做旧处理所得图像及其拉伸灰度级显示图像结果如下图所示:上图 (图像做旧)左上为原双精度图,右上为整数型数据的得到的图像,左下为双精度整数型数据各50%的融合比例, 右下 80%的双精度数据与20%的

8、整数型数据融合后的结果。2、练习题:改变融合比例上图(改变融合比例)左上为原双精度图,右上为整数型数据的得到的图像,左下为40%的双精度数据与60%的整数型数据融合后的结果,右下90%的双精度数据与10%的整数型数据融合后的结果。第三题第( 1)步:画一个点P(2.5,3)第( 2)步:画两个点3 ,5.21P,6, 5.62P第( 3)步:画两个点1P,2P及其连线上的中点,因为任意两点111, yxP,221,yxP之间的连线上的点yxP,可以表示为211PPP,即:212111yyyxxx其中10,特别地,当2/1时,P是连线上的中点。注意:两个同阶矩阵相加等于对应元素相加,矩阵除以某数

9、等于每个元素除以这个数。第( 4)步:一枝树杈,任意给定一节树段,在其中点长出一个分杈,长度等于原树段长的一半,向左偏离原树段30角,记原树段起点为1P,终点为2P,中点为0P,如图:算法:将向量21PP平移到原点,并缩小1/2 ,得到向量OP,2/12PPP将OP逆时针旋转 /6,再平移到1P与2P连线的中点2102/12/1PPP,得到向量LPP0,PAPPL0,其中6/cos6/sin6/sin6/cosA是旋转变换矩阵;将1P,0P,LP,0P,2P依序连接起来。0P1P2P第(5)步:画一棵分形树。 假定树的生长是有规律的,按分杈点可以将树分成有限个树段,每个阶段每个树段必在且只在中

10、点向一个固定方向,例如,向左偏离30,长出一枝新树杈,新树杈的出现,使得树可以被分为更多的树段,进入下一阶段的生长,在计算机上实现这个过程, 上一步已将一个树段变为一个树杈,这树杈由3 个新树段构成, 为表达清楚,可将上题的的输出指令u=u(1,:);p0;Ip;p0;u(2,:) 改为u=u(1,:);p0;p0;lp;p0;u(2,:) 即将每个树段的起点和终点坐标都分别用矩阵u 的奇数行和偶数行记录,3 个树段由 6 个点表示。 下一步, 在这 3 个树段的每段上都要长出一个分杈,即在每段上重复上一步工作,为编写代码简洁,先将画一枝树杈的指令用函数文件branch.m 表达。只要输入树段

11、断电坐标v 和将要长出分杈的偏离角度,就会输出长了一个分杈的树杈,然后,重复执行调用branch.m 画出所有树段生成的树杈,这个过程用函数文件tree.m 表达只要输入上阶段已有的树u 和规定的树杈偏离角,就会输出长了更多树杈的树。注意到,因为 u 记录了所有树段的起点和终点,所以树段总数是其行数的一半。按这种想法, 可以设计生长0k个阶段的分形树的算法。算法:0k给定初始值0u,一个 2 行 2 列矩阵表示一根树干两端点的坐标,给定参数表示树杈的生长角度。第k阶段(1k) :a.从上阶段的树1ku截出树段lv;b.树段lv上长成一枝树杈,记为luu;c.依序将luu拼接,构成ku如果kt0

12、 %第 n辆车以加速度行驶未达到路口前已达到最大限速. t(n)=subs(ttt,n); %它一定以最大限速通过路口. else t(n)=x; %否则,它以加速度过路口. end end第二题图像做旧的程序代码 load mask;%读取 MATLAB本身附带的索引图mask ,自动存为 mm=X;%mm 数据类型是双精度double,数值在( 0,1 )中 load face_mos;%读取 MATLAB本身附带的索引图mask ,自动存为 X nn=X;%nn数据类型是整数型,数值去0到255 mn1=0.5*mm+0.5*double(nn);%都转变成双精度数据,在进行运算 mn2

13、=0.8*mm+0.2*double(nn);%取不同的融合比例,得到不同的结果 subplot(2,2,1),imshow(mm,); subplot(2,2,2),imshow(nn,);subplot(2,2,3),imshow(mn1,); subplot(2,2,4),imshow(mn2,);%作用是拉伸灰度图示图像第三题第( 1)步:画一个点P(2.5,3)u=2.5 3;%用 1 行 2 列矩阵表示一个点的坐标plot(u(1),u(2),*)% 画点,横坐标在前,纵坐标在后,用* 号显示第( 2)步:画两个点3 ,5.21P,6, 5.62P u=2.5 3;6.5 6;%用

14、两行两列矩阵表示两个点的坐标plot(u(:,1),u(:,2),*)% 矩阵第一列u(:,1)表示横坐标,第二列u(:,2)表示纵坐标axis(2,7,2,7)%给定横坐标范围2,7 ,纵坐标范围 2,7 第( 3)步:画两个点1P,2P及其连线上的中点。u=2.5 3;6.5 6; p0=(u(1,:)+u(2,:)/2;% 在取中点u=u(1,:);p0;u(2,:);% 在原点 u 中间添入中点坐标plot(u(:,1),u(:,2),*-),axis(2,7,2,7) 第( 4)步:u=2.5 3;6.5 6; v=(u(2,:)-u(1,:)/2;%v表示经平移、缩小后的向量OP的

15、终点坐标A=cos(pi/6) sin(pi/6);-sin(pi/6) cos(pi/6) A = 0.8660 0.5000 -0.5000 0.8660 Ip=p0+v*A;%Ip表示经旋转、再平移后的向量P_OP_L 的终点坐标u=u(1,:);p0;Ip;p0;u(2,:); plot(u(:,1),u(:,2),*-),axis(2,7,2,7) 第( 5)步branch.m文件代码function u=branch(v,theta)p0=(v(2,:)+v(1,:)/2;v1=(v(2,:)-v(1,:)/2;A=cos(theta) sin(theta);-sin(theta) cos(theta);lp=p0+v1*A;u=v(1,:);p0;p0;lp;p0;v(2,:);endtree.m文件代码function w=tree(u,theta)uuu=;for j=0;(length(u)/2-1)% ? y?uDD y 3? ?u0=u(2*j+1):(2*j+2),:);% ?u?DD113 ?D? ?u?uu=branch(u0,theta);% ? 3 ? 3D ? 3 ?| ?uuu=uuu;uu;% D? D?endw=uuu;% ?D? ?end分形树代码 clear u=0 0;0 1; subplot(3,3

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号