lx=61;ly=101;
v1=zeros(ly,lx);
for j=2:lx-1
v1(ly,j)=5;
end
v2=v1;m=1;t=0;k=0;
while(m>0.00001)
k=k+1
m=0;
for i=2:ly-1
for j=2:lx-1;
v2(i,j)=(v1(i,j+1)+v1(i+1,j)+v1(i-1,j)+v1(i,j-1))/4;
t=(v2(i,j)-v1(i,j));
if(t>m)m=t;end
end
end
v1=v2;
end
subplot(1,2,1),mesh(v2)
axis([0,61,0,101,0,5])
subplot(1,2,2),contour(v2,32)
有限差分法的MATLAB程序
关注
打赏