您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 计算物理基于matlab方法研究水中倒影问题
基于Matlab方法研究水中倒影问题[摘要]本文介绍了用matlab研究倒影问题的方法,利用matlab可视化的优点可以直观的得出结果。[关键词]matlab;倒影;高度;图像TheResearchofTheProblemaboutWaterReflectionBaseOnMatlab[Abstract]Thepaperresearchaboutwaterreflectionbaseonmatlab[Keywords]matlab;waterreflection;height;figure[基于matlab方法研究水中倒影问题]21.绪论当今社会,随着计算机技术的飞速发展,计算机在学生的日常学习和生活中扮演着越来越来重要的角色,MATLAB科学计算语言因其高效、可视化、有推理能力等优点,在大学教育和科学研究中的应用也日益广泛【1】。使用MATLAB语言可以锻炼学生的思维能力和创新能力,并通过直观的物理图象加深对物理模型的理解。本文以MATLAB语言为基础,来解决物理问题。[基于matlab方法研究水中倒影问题]32水中倒影的研究在日常生活中可以发现,站在岸边看水中的倒影,对于同样高的灯柱,人、灯间距越大,灯光倒影越长;若人灯间距不变,灯柱越高,灯光倒影越长;人站得越高,所看到的同一个灯柱灯光的倒影越短;波浪越大,灯光倒影拉的越长【2】……这些日常生活中的物理现象到底要如何解释,下面来建立一个物理模型。2.1方程的建立先对物理模型做简化处理,产生波浪的原因很多,这里只考虑由风力所形成的微幅波,波长短、波高小,波浪表面与水平面最大夹角Φ较小,波形曲线两边对称。波浪是两向推进波,沿观察者与物体之间传播。并把波浪表面看作是与水平面成不同夹角的小平面镜【2】。建立一个直角坐标系,设人、物间距为s,物点高度a,观察者高度b,波浪表面与水平面间的夹角为θ,水中虚像的坐标为(x,y),如图2-1所式,X轴表示水面,A(0,a)为物点,B(s,b)为观察者,发射点C(d,0)θθθYA(0,a)C(d,0)B(s,b)XP(x,y)图2-11水中倒影示意图[基于matlab方法研究水中倒影问题]4处波浪表面与X轴夹角为θ,有反射定律可以求出,A点在水中的虚像P的坐标为x=2(dtanθ+a)cosθsinθ(2.11)y=-2(dtanθ+a)cos2θ+a(2.12)又因为线段PC和BC在一条直线上,应满足式(2.13)可化简为将(2.14)式代入(2.11)式得将(2.14)式代入(2.12)式得由(2.15)(2.16)两式得式中根据方程(2.15)和(2.17)或(2.16)和(2.17),给定a,b,s,θ,就能计算出虚像点位置P(x,y)并画出图像。当给定a,b,s,θ=-Φ时,求出倒影的一个端点坐标111(,)PXY,θ=Φ时求出倒影另一个端点坐标222(,)PXY,则能得到倒影的长度为bysddx(2.13)bxsydby(2.14)2sin2(2sinsin2)cos2absayxby(2.15)222(2cossin2)2cossin2yabasyababxb(2.16)321230ycycyc(2.17)21222232cossin2cos2()cos20.5sin42sin2sincbsacbabbsbsabcab22122121()()LPPXXYY[基于matlab方法研究水中倒影问题]5要计算出方程的解须借助MATLAB软件,以下介绍如何求解上述方程2.2MATLAB实现利用MATLAB编制函数程序dyz.m,程序如下所示【2】function[x,y,L]=dyz(theta,a,b,s)i=1;foro=-theta*pi/180:theta*pi/7200:theta*pi/180c1=2*b*cos(o)*cos(o)-s*sin(2*o)-a*cos(2*o);c2=(b*b-a*b)*cos(2*o)-0.5*b*s*sin(4*o)-2*s*b*sin(2*o)*sin(o)^2-a*b;c3=a*b*b;p=[1,-c1,c2,c3];y0=roots(p);forj=1:1:3ifimag(y0(j))==0&real(y0(j))0y(i)=y0(j);q=y0(j);endendx(i)=(a*b*sin(2*o)-(2*s*sin(o)^2+a*sin(2*o))*q)./(b*cos(2*o)-q);i=i+1;endL=sqrt((x(81)-x(1))^2+(y(81)-y(1))^2);设物点高a=5m,观察者高b=1.8m,人物间距s=100m,波浪表面与水平面最大夹角Φ=10。,在命令窗口调用dyz.m,如下所示[x,y]=dyz(10,5,1.8,100);plot(x,y,'o-r')得到的结果如图所示:图中每一个虚像点o对应一个θ值,o点的中心连线就是物点A的虚像。[基于matlab方法研究水中倒影问题]62.3结果分析从上图可以看出物点的虚像点在根部比较密集,在顶部比较稀疏,所以日常生活中看到的倒影的根部是明亮连续的,顶部就可能是稀疏暗淡的。一个物点在波浪中的虚像有多个,所以一个物体在波浪中的倒影就模糊不清了。2.3.1物点高度a对结果的影响还可比较物点高度a取不同值时的情况,如下所示:i=1;fora1=0.5:0.1:20a(i)=a1;[x1,y1,L1]=dyz(10,a1,1.8,100);图2-21倒影图像[基于matlab方法研究水中倒影问题]7L(i)=L1;i=i+1;endplot(a,L)xlabel('a','fontweight','bold');ylabel('L','fontweight','bold');title('不同高度物体的倒影','fontsize',15,'fontweight','bold')结果如图2-31所示,人、物间距不变时,物体越高,倒影越长2.3.2人的高度b对结果的影响修改程序,研究在a、s、θ一定时,人处的高度不同对结果有何影响。程序如下:i=1;forb1=0.5:0.1:20图2-31不同高度物体的倒影图2-31L-a曲线[基于matlab方法研究水中倒影问题]8b(i)=b1;[x1,y1,L1]=dyz(10,5,b1,100);L(i)=L1;i=i+1;endplot(b,L)xlabel('b','fontweight','bold');ylabel('L','fontweight','bold');title('观察者处于不同高度时得到的倒影长度','fontsize',15,'fontweight','bold')得到的结果如图2-32所示,L与b呈负相关,即观察者站得越高,所看到的同一个物体的倒影就越短。2.3.3人、物间距s对结果的影响修改程序,研究在a、b、θ一定时,人、物间距s变化时,对倒影长度L的影响。程序如下:i=1;图2-32L-b曲线图2-32L-b曲线[基于matlab方法研究水中倒影问题]9fors1=1:1:200s(i)=s1;[x1,y1,L1]=dyz(10,5,1.8,s1);L(i)=L1;i=i+1;endplot(s,L)xlabel('s','fontweight','bold');ylabel('L','fontweight','bold');title('人、物间距不同时的倒影长度','fontsize',15,'fontweight','bold')得到的结果如图2-33所示,L随着s的增大而增大,即同样高的物体,人、物间距越大,物体倒影越长。2.3.4波浪表面与水平面最大夹角Φ对结果的影响修改程序,研究在给定的b、s、a下不同的Φ对倒影长度L有何影响。程序如下:[基于matlab方法研究水中倒影问题]10i=1;fortheta1=0.1:0.1:20theta(i)=theta1;[x1,y1,L1]=dyz(theta1,5,1.8,100);L(i)=L1;i=i+1;endplot(theta,L)结果如图2-34所式,L与Φ成正比,即波浪愈大,物体的倒影拉的越长。图2-34L-Φ曲线[基于matlab方法研究水中倒影问题]11结论由以上分析可以得出,在微波条件下,倒影长度L与物点高度a,人、物间距s,波浪表面与水平面最大夹角Φ成正比,而与观察者高度b成反比,这一结果与日常生活中所观察到的倒影现象完全吻合。[基于matlab方法研究水中倒影问题]12参考文献[1]李海,余文丽.Matlab与大学物理习题教学整合的研究[N/OL].喀什师范学院学报,4[2006-06-05].[2]胡守信,李柏年.基于Matlab的数学实验.北京:科学出版社,2004:133-135.
本文标题:计算物理基于matlab方法研究水中倒影问题
链接地址:https://www.777doc.com/doc-2061380 .html