您的当前位置:首页matlab在电磁场与电磁波中的应用

matlab在电磁场与电磁波中的应用

2022-07-24 来源:小侦探旅游网


源程序

%用简单跌代法求矩形平行电容板内的电位分布

hx=37;hy=80;%设置网格节点数

v1=ones(hy,hx);%设置行列二维数组

%上下两行的Dirichlet边界条件值

v1(hy,:)=ones(1,hx)*100;

v1(1,:)=zeros(1,hx);

%左右两行的Dirichlet边界条件值

for i=1:hy

v1(i,hx)=0;

end

for i=1:hy/2

v1(i,1)=0;

end

for i=hy/2:hy

v1(i,1)=100;

end

v2=v1;maxt=1;t=0;%初始化

k=0

while(maxt>1e-6)

k=k+1%计算迭代次数

maxt=0;

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=abs(v2(i,j)-v1(i,j));

if(t>maxt) maxt=t;end

end

end

v1=v2

end

subplot(1,2,1),mesh(v2)%画三维曲面图

xlabel('x')

ylabel('y')

zlabel('v')

subplot(1,2,2),contour(v2,15)%画等位线图

hold on

x=1:1:hx;y=1:1:hy

[xx,yy]=meshgrid(x,y);%形成栅格

[Gx,Gy]=gradient(v2,0.6,0.6);%计算梯度

quiver(xx,yy,Gx,Gy,-0.8,'r')%设置坐标边框

plot([1,1,hx,hy,1],[1,hy,hy,1,1],'k')%画导体边框

text(hx/2,0.3,'0v','fontsize',11);%下标注

text(hx/2-0.5,hy+0.5,'100v','fontsize',11);%上标注

text(-0.5,hy/2,'0v','fontsize',11);%左标注

text(hx+0.3,hy/2,'0v','fontsize',11);%右标注

hold off

分离变量法:

[x,y]=meshgrid(0:0.1:10,0:0.1:10); %建立网格

U0=100;a=10;z=0; %设定参数

for n=1:100;

j=U0/pi.*(((-1)^n)/n).*sin(2*n*pi.*y/a).*exp(-2*n*pi.*x/a); z=z+j;

end

subplot(1,2,1),mesh(v2)%画三维曲面图

xlabel('x')

ylabel('y')

zlabel('v')

subplot(1,2,2),contour(v2,15)%画等位线图

%用超松弛法求矩形平行电容板内的电位分布

hx=37;hy=80;%设置网格节点数

v1=ones(hy,hx);%设置行列二维数组

m=36;n=79;

%上下两行的Dirichlet边界条件值

v1(hy,:)=ones(1,hx)*100;

v1(1,:)=zeros(1,hx);

%左右两行的Dirichlet边界条件值

for i=1:hy

v1(i,hx)=0;

end

for i=1:hy/2

v1(i,1)=0;

end

for i=hy/2:hy

v1(i,1)=100;

end

%计算松弛因子

t1=(cos(pi/m)+cos(pi/n))/2;

w=2/(1+sqrt(1-t1*t1));

v2=v1;maxt=1;t=0;%初始化

k=0

while(maxt>1e-6)

k=k+1%计算迭代次数

maxt=0;

for i=2:hy-1

for j=2:hx-1

v2(i,j)=v1(i,j)+(v1(i,j+1)+v1(i+1,j)+v2(i-1,j)+v2(i,j-1)-4*v1(i,j))*w/4;

t=abs(v2(i,j)-v1(i,j));

if(t>maxt) maxt=t;end

end

end

v1=v2

end

subplot(1,2,1),mesh(v2)%画三维曲面图

xlabel('x')

ylabel('y')

zlabel('v')

subplot(1,2,2),contour(v2,15)%画等位线图

hold on

x=1:1:hx;y=1:1:hy

[xx,yy]=meshgrid(x,y);%形成栅格

[Gx,Gy]=gradient(v2,0.6,0.6);%计算梯度

quiver(xx,yy,Gx,Gy,-0.8,'r')%设置坐标边框

plot([1,1,hx,hy,1],[1,hy,hy,1,1],'k')%画导体边框

text(hx/2,0.3,'0v','fontsize',11);%下标注

text(hx/2-0.5,hy+0.5,'100v','fontsize',11);%上标注

text(-0.5,hy/2,'0v','fontsize',11);%左标注

text(hx+0.3,hy/2,'0v','fontsize',11);%右标注

hold off

因篇幅问题不能全部显示,请点此查看更多更全内容