目录一.实际现象的描述 3二.问题的求解4(一)求弦振动泛定方程 4(二)解弦振动方程 (6)Ⅰ.达朗贝尔法求“无限和半无限的”弦振动函数 (6)Ⅱ.分离变量法求两端固定弦振动方程 (7)三.各种情形下的弦振动求解及图像 (9)四.总结21一·实际现象的描述演奏者在演奏弦乐器(如二胡、提琴)时,用弓在弦上来回拉动,并通过另一只手指在按不同弦的不同地位的协调作用,奏出各种不同的美妙的音乐。
演奏者所用的乐器不同,奏出音乐的悦耳度也就不同。
演奏者虽然用弓所接触的只是弦的很小一段,似乎应该只引起这个小段的振动,而事实上,振动总是传播到整根弦。
这振动是怎样传播的呢?如何利用数学方法来求解这种物理问题?如何通过直观的方程来说明不同乐器演奏出的音乐效果不同的原因?可否利用matlab来将这种振动直观表示出来?通过对于弦振动方程的学习,及对matlab的初步了解,我对于不同定解问题下弦振动方程的求解做了初级小结。
也尝试利用matlab 直观表述不同定解条件下的弦振动动态图像。
二·问题的求解(一)求弦振动泛定方程在求解时,我们不妨认为弦是柔软的,就是说在放松的条件下,把弦完成任意的形状,它都保持静止。
由于弦乐器所用的弦往往是很轻的,它的重量只有力的几万分之一。
跟拉力相比,弦的重量完全可以略去,这样,真实的弦就抽象为“没有重量”的弦。
把没有重量的弦绷紧,它在不振动时是一根直线,就取这直线作为x轴。
把弦上各点的横向位移记作u。
这样,横向位移u是x和t的函数,记作u(x,t)。
要求解弦振动,首先应找出u所遵从的方程。
把弦细分为许多极小的小段,拿区间(x,x+dx)上的小段B为代表加以研究。
B既然没有重量而且是柔软的,它就只受到邻段A和C的拉力和。
弦的每小段都没有纵向(即x方向)的运动,所以作用于B的纵向合力应为零。
弦的横向加速度记作。
按照,小段B的纵向和横向运动分别为式中时弦的线密度,即单位长度的质量。
ds为小段B的弧长。
因考虑的振动为小围振动,这时、为小量,如果忽略、以上的高阶小量,则,,,,,又,。
这样,(1)和(2)简化为因此,弦中力不随x而变,它在整根弦中取同一数值。
另一方面,在振动过程中的每个时刻都有长度ds=dx,即长度ds不随时间而变,所以作用于B段的力也不随时间而变。
弦中力即跟x无关,又跟t无关,只能是常数,记为T。
则(4)式为由于dx取得很小,。
这样,B段的运动方程就成为(5)由于B是作为代表任选的,所以方程(5)适用于弦上各处,是弦做微小横振动的运动方程,简称弦振动方程。
由此就求得了自由振动状态下的弦振动方程为若为受迫振动,则方程为(二)解弦振动方程Ⅰ .达朗贝尔法求“无限和半无限的”弦振动函数弦振动方程为:即 (6)先求其通解:依据方程(6)的形式作代换,即在此代换之下,由此,方程(6)可化为(7)先对η积分,得(8)其中f是任意函数,再对ξ积分,就得到通解u dξ+f= (9)通解中的与可用定解条件确定。
因我们在此求解的为“无限长或半无限长的”弦,因而此种情况下就不存在边界条件,设初始条件是(10)将一般解(9)带入初始条件,得即由此解得以此带回(9)式即得满足初始条件(10)的特解dξ.即所谓的达朗贝尔公式。
Ⅱ.分离变量法求两端固定弦振动方程定解问题为:泛定方程(11)边界条件 (12)初始条件 (0) (13) 解:令 u(x,t)=X(x)T(t)带入泛定方程及边界条件得X (14)(15)因T(t)不恒等于零,故而(15)式即为 X(0)=0,X(l)=0 (16) 用遍除(14)式各项即得因此式左边是时间t的函数,与坐标x无关;右边是坐标x的函数,跟时间t无关。
若两边相等,则两边比为一常数。
将此常数记为-,即由此化为(19)先求解X,将(1)当λ时,方程(17)的解为X(x)=积分常数由条件(18)确定,即由此解出,进而有X,所以此解为无意义之解,故排除λ的可能。
(2)当λ时,方程(17)的解为X(x)=积分常数由条件(18)确定,即由此解出,进而有X,所以此解为无意义之解,故也排除λ的可能。
(3)当λ时,方程(17)的解为X(x)=积分常数由条件(18)确定,即由于,为使函数有意义,只能,进而解得由此可得 X(x)=(21)其中为任意常数将式(20)代入方程(19)得这个方程的解为其中A,B为任意常数将(21)和(22)代入u(x,t)=X(x)T(t) 即得分离变数的解进而可得弦振动方程的解为其中系数情况一:初速度不为零,初位移为零设初速度为ψ其解析解为其中系数取a=2,l=1,则弦振动动画的源程序为:function u(x,t)N=50;t=0:0.005:2.0; x=0:0.001:1;ww=u1fun1(N,0);h= plot(x,ww,'linewidth',3);axis([ 0, 1, -1, 1])sy=[ ];for n=2:length(t)ww=u1fun1(N,t(n));set(h,'ydata',ww);drawnow;sy=[sy,sum(ww)];endfunction wtx=u1fun1(N,t)x=0:0.001:1; a=2; wtx=0;for k=1:NBk=5/(k*k*pi*pi)*(cos(2*k*pi/5)-cos(4*k*pi/5)); wtx=wtx+Bk*sin(2*k*pi*t)*sin(k*pi*x);end此种情况与可用差分法求解clearN=4010; dx=0.0024;dt=0.0005; c=dt*dt/dx/dx;u(1:420,1)=0; x=linspace(0,1,420)';u(2:280,1)=0.05/280*(2:280)';u(281:419,1)=0.05/(419-280)*(419-(281:419)');u(2:419,2)=u(2:419,1)+c/2*(u(3:420,1)-2*u(2:419,1)+u(1:418,1));h=plot(x,u(:,1),'linewidth',3)axis([0,1,-0.05,0.05]);set(h,'EraseMode','xor','MarkerSize',18)for k=2:Nset(h,'XData',x,'YData',u(:,2));drawnow;u(2:419,3)=2*u(2:419,2)-u(2:419,1)+c*(u(3:420,2)-2*u(2:419,2)+u(1:418,2)); u(2:419,1)=u(2:419,2);u(2:419,2)=u(2:419,3);end此种情况下n=1,2,3,4,5,6时的本征振动随时间分布图cleara=1;l=1;x=0:0.05:1;t=0:0.001:3;u=0;n=1;[X,T]=meshgrid(x,t)R=5/(n*n*pi*pi)*(cos(2*n*pi/5)-cos(4*n*pi/5)) u=u+(R*sin(n*pi*a*T/l)).*sin(n*pi*X/l);figure(1)axis([0 1 -0.05 0.05])mesh(X,T,u)title('n=1本征振动随时间分布图')xlabel('x')xlabel('t')xlabel('u')情况二:初速度为零,初位移不为零设初位移为取a=1,l=1得其中系数此种情况下弦振动动画的源程序为:function FN=50t=0:0.005:2.0;x=0:0.001:1;ww=wfun(N,0);ymax=max(abs(ww));h= plot(x,ww,’linewidth’,3);axis([ 0, 1, -ymax, ymax])sy=[ ];for n=2:length(t)ww=wfun(N,t(n));set(h,’ydata’,ww);drawnow;sy=[sy,sum(ww)];endfunction wtx=wfun(N,t)x=0:0.001:1; a=1; wtx=0;for I=1:Nif I~=5wtx=wtx+0.05*( (sin(pi*(5-I)*4/5)-sin(pi*(5-I)*2/5)).../(5-I)/pi-(sin(pi*(5+I)*4/5)-sin(pi*...(5+I)*2/5))/(5+I)/pi )*cos(I*pi*a*t).*sin(I*pi*x);elsewtx=wtx+0.05/5*cos(I*pi*a*t).*sin(I*pi*x);endend情况三:有驱动力的弦振动方程定解问题为因有,所以此类问题可以用傅里叶级数法求解,如果初始条件为零,则同样也可用冲量法求解傅里叶级数法求解过程为:因边界条件为下的本征函数是(n=0,1,…)。
所以可以把所求的解展开为傅里叶余弦级数将这个级数代入泛定方程得将傅里叶级数展开等式两边比较系数得将的傅里叶余弦级数代入初始条件,得由傅里叶级数基本函数族的正交性可得的常微分方程在以上初始条件下的解为由此可得,所求的解是初始条件为零时的冲量法求解过程为:应用冲量定理法,先求解因边界条件为下的本征函数是(n=0,1,…)。
所以可以把所求的解展开为傅里叶余弦级数将此代入泛定方程得由此分离出的常微分方程为这个常微分方程的解为这样解v的傅里叶级数是将上式代入初始条件得比较等式两边系数得至此求得:因故而可得当l=1; a=1,在驱动力作用下的弦振动图像为w=0.5; al=pi*a/l; A=2;x=0:0.05:1;m=moviein(301);for k=0:300u=A/al/(w^2 - al^2)*(w*sin(al*k*0.1)...-A*al*sin(w*k*0.1))*cos(pi*x./l);plot(x,u);axis([0 1 -0.5 0.5])m(:,k+1)=getframe;end总结通过这次对于弦振动解法的小结,让我更深刻的了解了实际问题中为什么不同的乐器会奏出不同的音乐,主要是因为求解出的振动函数展开为傅里叶级数所包含的项不同,外加弹奏着所使用的驱动力不同,也会使振动效果不同,自然悦耳度也就不同。
通过利用matlab对于不同情况下的弦振动的动态表述,让我对于matlab有了更深的认识,由于时间有限,外加对于matlab的掌握程度比较低,也让我的操作受了很大的限制。
在今后的学习中更因该加强这方面的操作,真正将利用软件和原始计算求解能够完美结合,以此来加深自己对于数理方程的更深刻了解。