u(0,t)=c1=0, x=0, 0≤t≤0.20
u(1,t)=c2=0, x=1, 0≤t≤0.20
设 h=0.2,k=0.02和r=0.5
使用surf和contour命令画出近似值解
源程序:
x=0:0.2:1
t=0:0.02:0.2
r=0.5
h=0.2
k=0.02
n=6
m=11
s=1-2*r
u=zeros(n,m)
u(1,1:m)=0
u(n,1:m)=0
pi=3.14159
for i=2:n-1
u(i,1)=sin(pi*(i-1)*h)+sin(3*pi*(i-1)*h)
end
for j=2:m
u(2:n-1,j)=s*u(2:n-1,j-1)+r*(u(1:n-2,j-1)+u(3:n,j-1))
end
u=u'
subplot(2,2,1);surf(x,t,u);title('surf');xlabel('x');ylabel('t');
subplot(2,2,2);contour(x,t,u);title('contour');xlabel('x');ylabel('t');
绘图结果如下:
u =
0 1.5388 0.3633 0.3633 1.5388 0
0 0.1816 0.9511 0.9511 0.1816 0
0 0.4755 0.5663 0.5663 0.4755 0
0 0.2832 0.5209 0.5209 0.2832 0
0 0.2605 0.4021 0.4021 0.2605 0
0 0.2010 0.3313 0.3313 0.2010 0
0 0.1656 0.2661 0.2661 0.1656 0
0 0.1331 0.2159 0.2159 0.1331 0
0 0.1079 0.1745 0.1745 0.1079 0
0 0.0872 0.1412 0.1412 0.0872 0
0 0.0706 0.1142 0.1142 0.0706 0