楼主:
knutten (biker)
2017-12-10 23:53:00大家好, 小弟是matlab新手, 正在努力学matlab中.
我在一本书看到以下的程式, 但是书上的例子是设定上面的电压是100V, 两侧和底部的电压是0V.
但是我想要模拟成上面电压1500V, 两侧和底部的电压是700V, 可是好像得不到答案,
所以只能将上部取800V, 两侧和底部的电压是0V, 用压差来模拟, 请问有没有什么方法可以
模拟成上面电压1500V, 两侧和底部的电压是700V?
v0=800;hx=11;hy=9;
v1=zeros(hy,hx);
v1(hy,:)=ones(1,hx)*v0;
v1(2:hy-1,2:hx-1)=ones(hy-2,hx-2);
v2=zeros(hy,hx);maxt=1;t=0;
v2(hy,:)=v1(hy,:);
while (maxt>0.1)
for i=2:hy-1
for j=2:hx-1
v2(i,j)=(v1(i,j-1)+v1(i,j+1)+v1(i-1,j)+...
v1(i+1,j))/4;
t=v2(i,j)-v1(i,j);
maxt=0;
if(t>maxt) maxt=t; end
end
end
v1=v2;
end
subplot(1,2,1),surf(v2)
axis ([0,11,0,9,1,800])
subplot(1,2,2),
contour(v2);
hold on;
x=1:1:11;y=1:1:9;
[xx,yy]=meshgrid(x,y);
[Gx,Gy]=gradient(v2,0.6,0.6);
quiver (xx,yy,Gx,Gy,'r'),
hold off