- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算物理——基于matlab方法研究水中倒影问题.doc
基于Matlab方法研究水中倒影问题
[摘 要] 本文介绍了用matlab研究倒影问题的方法,利用matlab可视化的优点可以直观的得出结果。
[关键词] matlab; 倒影 ; 高度; 图像
The Research of The Problem about Water Reflection
Base On Matlab
[Abstract] The paper research about water reflection base on matlab
[Keywords] matlab;water reflection;height;figure
绪论
当今社会,随着计算机技术的飞速发展,计算机在学生的日常学习和生活中扮演着越来越来重要的角色,MATLAB科学计算语言因其高效、可视化、有推理能力等优点,在大学教育和科学研究中的应用也日益广泛【1】。使用MATLAB语言可以锻炼学生的思维能力和创新能力,并通过直观的物理图象加深对物理模型的理解。本文以MATLAB语言为基础,来解决物理问题。
2 水中倒影的研究
在日常生活中可以发现,站在岸边看水中的倒影,对于同样高的灯柱,人、灯间距越大,灯光倒影越长;若人灯间距不变,灯柱越高,灯光倒影越长;人站得越高,所看到的同一个灯柱灯光的倒影越短;波浪越大,灯光倒影拉的越长【2】……这些日常生活中的物理现象到底要如何解释,下面来建立一个物理模型。
2.1 方程的建立
先对物理模型做简化处理,产生波浪的原因很多,这里只考虑由风力所形成的微幅波,波长短、波高小,波浪表面与水平面最大夹角Φ较小,波形曲线两边对称。波浪是两向推进波,沿观察者与物体之间传播。并把波浪表面看作是与水平面成不同夹角的小平面镜【2】。
建立一个直角坐标系,设人、物间距为s,物点高度a,观察者高度b,波浪表面与水平面间的夹角为θ,水中虚像的坐标为(x,y),如图2-1所式,X轴表示水面,A(0,a)为物点,B(s,b)为观察者,发射点C(d,0)
处波浪表面与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,θ=-Φ时,求出倒影的一个端点坐标,θ=Φ时
求出倒影另一个端点坐标,则能得到倒影的长度为
要计算出方程的解须借助MATLAB软件,以下介绍如何求解上述方程
2.2 MATLAB实现
利用MATLAB编制函数程序dyz.m,程序如下所示【2】
function [x,y,L]=dyz(theta,a,b,s)
i=1;
for o=-theta*pi/180:theta*pi/7200:theta*pi/180
c1=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);
for j=1:1:3
if imag(y0(j))==0 real(y0(j))0
y(i)=y0(j);
q=y0(j);
end
end
x(i)=(a*b*sin(2*o)-(2*s*sin(o)^2+a*sin(2*o))*q)./(b*cos(2*o)-q);
i=i+1;
end
L=sqrt(
文档评论(0)