MATLAB编辑一维波动方程的模拟的程序
一维波动方程的模拟
程序:
function wave_equation() %一维线性齐次波动方程
options={'空间杆长L','空间点数N' ,'时间点数M','波的相速度v',...
'稳定条件的值r(取值必须小于1)','初始速度调用形式form(选择1或2)'};
topic='seting';
lines=1;
def={'1','100','100','1','1','1'};
p=inputdlg(options,topic,lines,def);
L=eval(p{1});
N=eval(p{2});
M=eval(p{3});
v=eval(p{4});
r=eval(p{5});%r的值必须小于1
form=eval(p{6});
%***************************************************************
h=L/N;%空间步长
x=0:h:L;
x=x';
tao=r*h/v;%时间步长
tm=M*tao;%波传播的总时间tm
t=0:tao:tm;
t=t';
%计算边值和初值
U=zeros(N+1,M+1);