penglining 发表于 2006-7-12 06:34

求助:有限差分模拟问题

用matlab软件编的有限差分模拟驻波,结果随着时间的增加,驻波波腹值越来越大?
代码如下,请高手指点,谢谢!

function FDTD_standingwave
L=2;density=1.21;speed=300;%频率300Hz、波长1米,计算两个波长
dh=0.05;%选取位置步长为0.02m
dt=0.00005;%the timestep , considering the Courant stability c*dt/dh<=1/2
nx=length(0:0.05)-1;%nx and ny are the total steps of length and width
ux(1:nx+1)=0;%设定u和p相差半个时间步长,即此时刻设定的u是u(t= -0.5)的值,而p设定的是p(t=0)时刻的值

p(1:nx)=0;


fort=1:400;
      p(1)=p(1)+100*cos(2*pi*300*(t-1)*dt);%声源大小为:100*cos(2*pi*300*(t-1)*dt)简谐振动,位置在左边界点,即p(1)
      for ii=1:nx;

               if ii==nx;
                ux(ii+1)=0;%左边界固定为0
               else                  
                ux(ii+1)=ux(ii+1)-dt/(density*dh)*(p(ii+1)-p(ii));
               end                     

            p(ii)=p(ii)-(density*(speed^2)*dt/dh)*((ux(ii+1)-ux(ii)));
            
      
   end
end

plot(p) %显示两个波长的声压大小

hexqi666 发表于 2006-11-30 16:17

怎么没有人指点一下..

页: [1]
查看完整版本: 求助:有限差分模拟问题