最近遇到了难题,一直想不出编程方法来实现,所以迟迟没有更新。现在也没想出来!所以本篇文章并不是那个难题,而是另外不相关的一篇文章。
明天小编有声场光栅的物理实验,在预习实验报告时把驻波的式子推导了一遍,看到这个式子如此简洁,以至于到了能用一个五分钟程序展示的地步,随即就写了本文。
上学期在做驻波实验时看到过驻波,这次将要在电脑程序上看到。
首先来一下推导
在x=0处有一个振动,其方程为
扰动在空间会以波的形式传播,在x=0处的振动传递到x处所用时间为δt,设波的速度为v,所以有
假设波的振幅不衰减,所以每处的最大振幅都是A。
至于上式为什么是t-δt,是因为t时刻在x处的振动,为δt时间之前x=0处的振动。
由角频率与频率的关系,及波速与频率、波长的关系,上式可化为
假设波在传播到x=x0处遇到一障碍,则会发生反射,根据已经推导出的入射波式子,再考虑由波疏到波密引起的半波损失后,可得反射波的方程如下(具体推导与入射波推导如出一辙,不再重复)
式中的π相位差是由于半波损失引起的,入射波与反射波会在空间叠加,现在为了简洁一点,将初相位置零,即φ0=0,这并不影响结果,因为合适的初相位总可以通过改变计时起点或者坐标原点获得。
将已推导两式相加,利用和差化积公式得
此式即为驻波的公式,单从式子形式上我们就可以分析出许多驻波的特征,如两个波节点之间的距离为半个波长,驻波的波节位置在空间中不变,驻波振动过程中有一个时刻会成为一条直线等等,为了直观看出驻波的情形,有以下程序
k=2*pi/3; % 波数 分母上是波长
phi=pi-2*k*10; % 即推导过程中的φ撇
w=2*pi*(1/0.5); % 角频率 分母上是入射波或者反射波的振动周期
X=0:0.01:10; % 要显示驻波的空间范围
mysize=size(X);
U_store=ones(1,mysize(2));
myindex=1;
for t=0:0.01:15
myindex=1;
for x=0:0.01:10
U_store(myindex)=3*cos(k*x+phi/2)*cos(w*t+phi/2); %推导出的驻波公式
myindex=myindex+1;
end
hold off;
plot(0,0);
hold on;
axis([-1,11,-4,4]);
plot(X,U_store,'b');
plot(X,-1*U_store,'b'); %由于视觉暂留的影响,肉眼看到的驻波是上下对称的图形,虽然是程序,但这里也做了这种处理
pause(0.08); % 此为视觉效果的处理,打印图形后暂停一段时间,清屏再打印出新的图形
end
以下为程序结果
由于驻波公式中每一项的物理意义都极为清楚,读者可自行尝试修改参数再运行程序。
另外,要表达我对于祝融号登陆火星的激动心情,除了对国家的自豪外,还有作为一个普通人类个体的激动心情,随着中国这样一个大国在太空探索上越发投入,我相信,人类作为一个文明拥抱宇宙的日子会加速到来。
看着满天的繁星,求知的欲望愈发强烈,迎接未知的目光也将愈发坚定,加油吧!人!
该图来自网络
本文完。