找回密码
 注册
Simdroid-非首页
查看: 146|回复: 0

[有限差分] 求助:有限差分模拟驻波问题

[复制链接]
发表于 2006-7-11 11:48:37 | 显示全部楼层 |阅读模式 来自 华南理工大学
用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;


for  t=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) %显示两个波长的声压大小
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-28 21:31 , Processed in 0.045461 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表