📄 zhengliubianxingerweichangyudianweifenbu.m
字号:
hx=37;hy=19;
v=zeros(hy,hx);
mesh1=ones(hy,hx)*2;
mesh1(11,2:36)=3*ones(1,35);
mesh1(9,2:36)=3*ones(1,35);
for i=1:10
v(i,9+i)=0; v(i,29-i)=0;
mesh1(i,9+i)=0; mesh1(i,29-i)=0;
mesh1(i,10+i)=3; mesh1(i,8+i)=3;
mesh1(i,28-i)=3; mesh1(i,30-i)=3;
end
for i=11:19
v(i,29-i)=0; v(i,9+i)=0;
mesh1(i,29-i)=0; mesh1(i,9+i)=0;
mesh1(i,28-i)=3; mesh1(i,30-i)=3;
mesh1(i,8+i)=3; mesh1(i,10+i)=3;
end
v(10,1:37)=zeros(1,37);mesh1(10,1:37)=zeros(1,37);
for i=1:10
for j=1:11-i
v(i,j)=1;mesh1(i,j)=0;
end
for j=27+i:37
v(i,j)=1;mesh1(i,j)=0;
end
end
for i=11:19
for j=1:i-9
v(i,j)=-1;mesh1(i,j)=0;
end
for j=47-i:37
v(i,j)=-1;mesh1(i,j)=0;
end
end
for j=10:28
v(1,j)=-1;v(19,j)=1;
mesh1(1,j)=0;mesh1(19,j)=0;
end
v(10,1)=0;v(19,10)=0;v(19,28)=0;v(10,37)=0;v(1,28)=0;v(1,10)=0;
k=0;
difmax=1.0;
while (difmax>1e-6)
k=k+1;
difmax=0.0;
for i=2:hy-1
for j=2:hx-1
m=mesh1(i,j);
if (m>=2)
vold=v(i,j);
if (m==3)
v(i,j)=(1/4)*(v(i,j-1)+v(i,j+1)+v(i-1,j)+v(i+1,j));
else
v(i,j)=(1/6)*(v(i,j-2)+v(i,j+2)+v(i-1,j-1)+v(i-1,j+1)+v(i+1,j-1)+v(i+1,j+1));
end
dif=v(i,j)-vold;
dif=abs(dif);
if (dif>difmax)
difmax=dif;
end
end
end
end
end
format bank
v
contour(v,20)
hold on
x=1:1:hx;
y=1:1:hy;
[xx,yy]=meshgrid(x,y);
[Gx,Gy]=gradient(v,0.6,0.6);
%quiver(xx,yy,Gx,Gy,-0.9,'r')
axis([-2,hx+3,-2,hy+3])
plot([1,10,28,37,28,10,1],[10,19,19,10,1,1,10],'k')
text(2,15,'U=+1','fontsize',10)
text(hx/2-1,hy+1,'U=-1','fontsize',10)
text(34,14,'U=+1','fontsize',10)
text(33,5,'U=-1','fontsize',10)
text(hx/2-1,0,'U=+1','fontsize',10)
text(2,5,'U=-1','fontsize',10)
hold off
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -