📄 wavequ.m
字号:
%波动方程有限差分法
f=inline('sin(pi*x)','x');
g=inline('0');
l=1;T=0.5;m=10;N=10;af=1;
xx=[];tt=[];uu=[];
h=l/m;
k=T/N;
lmd=k*af/h;
u(1,2:N+1)=0;
u(m+1,2:N+1)=0;
u(1,1)=f(0);
u(m+1,1)=f(l);
for i=2:m
u(i,1)=f((i-1)*h);
u(i,2)=(1-lmd^2)*f((i-1)*h)+lmd^2*(f(i*h)+f((i-2)*h))/2+k*g((i-1)*h);
end
for j=2:N
for i=2:m
u(i,j+1)=2*(1-lmd^2)*u(i,j)+lmd^2*(u(i+1,j)+u(i-1,j))-u(i,j-1);
end
end
t=linspace(0,T,N+1);
x=linspace(0,l,m+1);
for i=1:m+1
for j=1:N+1
xx=[xx,x(i)];
tt=[tt,t(j)];
uu=[uu,u(i,j)];
tur(i,j)=sin(pi*x(i))*cos(pi*t(j));
ture=[ture,tur(i,j)];
end
end
re=[xx' tt' uu' ture']
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -