电磁场与电磁波实验报告实验名称:有限差分法解电场边值问题实验日期:2012年12月8日姓名:赵文强学号:100240333XX工业大学(威海)问题陈述如下图无限长的矩形金属导体槽上有一盖板,盖板与金属槽绝缘,盖板电位为U0,金属槽接地,横截面如图所示,试计算此导体槽内的电位分布。
参数说明:a=b=10m,U=100v实验要求1)使用分离变量法求解解析解;2)使用简单迭代发求解,设-10=100.1,1x yε∆=∆=,两种情况分别求解数值解;3)使用超松弛迭代法求解,设-10=100.1x yε∆=∆=,确定∂(松弛因子)。
求解过程一、分离变量法求解因为矩形导体槽在z方向为无限长,所以槽内电位函数满足直角坐标系中的二维拉普拉斯方程。
2222(0,)0,(,)0(0)(,0)0,(,)(0)x yy a y y bx x b U x aϕϕϕϕϕϕ∂∂+=∂∂==≤≤==≤≤根据边界条件可以确定解的形式:1ππ(,)sin()sinh()nn n x n yx y A a aϕ∞='=∑ 利用边界条件0(,)x b U ϕ=求解系数。
01ππsin()sinh()n n n x n b A U a a∞='=∑ 01πsin()n n n xU f a∞==∑ 00041,3,5,2πsin()d π2,4,6,an U n n x f U x n a a n ⎧=⎪==⎨⎪=⎩⎰011πππsin()sinh()sin()n nn n n x n b n x A U f a a a ∞∞=='==∑∑ 041,3,5,πsinh(π/)'πsinh()02,4,6,n n U n f n n b a A n b n a⎧=⎪==⎨⎪=⎩01,3,5,4ππ(,)sin()sinh()πsinh(π/)n U n x n yx y n n b a a aϕ∞==∑简单迭代法求解二、 有限差分法有限差分法(Finite Differential Method )是基于差分原理的一种数值计算法。
其基本思想:将场域离散为许多小网格,应用差分原理,将求解连续函数ϕ的泊松方程的问题转换为求解网格节点上ϕ的差分方程组的问题。
泊松方程的五点差分格式)(414243210204321Fh Fh -+++=⇒=-+++ϕϕϕϕϕϕϕϕϕϕ当场域中,0=ρ得到拉普拉斯方程的五点差分格式)(41044321004321ϕϕϕϕϕϕϕϕϕϕ+++=⇒=-+++差分方程组的求解方法(1) 高斯——赛德尔迭代法][)(,)(,)(,)(,)(,2k 1j i k j 1i 1k 1j i 1k j 1i 1k j i Fh 41-+++=+++-+-+ϕϕϕϕϕ (1-14)式中:⋅⋅⋅⋅⋅⋅=⋅⋅⋅⋅⋅⋅=,2,1,0,2,1,k j i ,• 迭代顺序可按先行后列,或先列后行进行。
• 迭代过程遇到边界节点时,代入边界值或边界差分 格式,直到所有节点电位满足εϕϕ<-+)(,)(,k ji l k ji 为止。
(2)超松弛迭代法][)(,)(,)(,)(,)(,)(,)(,k j i 2k 1j i k j 1i 1k 1j i 1k j 1i k j i 1k j i 4Fh 4ϕϕϕϕϕαϕϕ--++++=+++-+-+ (1-15)式中:α——加速收敛因子)21(<<α 可见:迭代收敛的速度与α有明显关系 (一)简单迭代法简单迭代法程序: 1) 步长=1clear all;clc;close all; %设置节点数,步长1 hx=11; hy=11;v1=ones(hy,hx); %% %%%设置边界条件v1(hy,:)=ones(1,hx)*100; v1(1,:)=zeros(1,hx); v1(1:hy,1)=0; v1(1:hy,hx)=0; %% %%%初始化 v2=v1;图1-4 高斯——赛德尔迭代法maxt=1;t=0;k=0;%%%%while(maxt>1e-10)k=k+1; %计算迭代次数maxt=0;for i=2:hy-1for j=2:hx-1v2(i,j)=(v1(i,j+1)+v1(i+1,j)+v2(i-1,j)+v2(i,j-1))/4;%拉普拉斯方程差分形式t=abs(v2(i,j)-v1(i,j));if(t>maxt) maxt=t;endendendv1=v2;end%%%%%可视化显示subplot(1,2,1),mesh(v2); %画电势的三维曲面图axis([0 ,11,0,11,0,100]);title('步长=1,各点电位');subplot(1,2,2),contour(v2); %画等势线title('等位线');实验结果:步长=1,各点电位等位线步长1,迭代次数k =246各节点电位数据:2)步长=0.1实验结果:5010050100020*********步长=0.1,各点电位等位线102030405060708090100图2,简单迭代法步长0.1步长0.1,迭代次数 k =20051部分实验结果数据截图:图3,简单迭代法步长0.1部分数据(二)超松驰迭代法1. 理论最佳松弛因子实验结果实验程序:clear all;clc;close all;%设置节点数,步长0.1hx=101;hy=101;m=100;n=100;v1=ones(hy,hx);%%%%%设置边界条件v1(hy,:)=ones(1,hx)*100;v1(1,:)=zeros(1,hx);v1(1:hy,1)=0;v1(1:hy,hx)=0;%%%%%计算松弛因子t1=sin(pi/(100));w=2/(1+t1);%%%%%初始化v2=v1;maxt=1;t=0;k=0;%%%%while(maxt>1e-10)k=k+1; %计算迭代次数maxt=0;for i=2:hy-1for j=2:hx-1v2(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;endendendv1=v2;end%%%%%可视化显示subplot(1,2,1),mesh(v2); %画电势的三维曲面图axis([0 ,101,0,101,0,100]);title('超松弛迭代法各点电位');subplot(1,2,2),contour(v2,20); %画等势线title('等位线');%%%%disp('超松弛迭代步长0.1,迭代次数');kdisp('松弛因子');w%%最佳松弛因子获得的实验结果:超松弛迭代法各点电位等位线k =491松弛因子w =1.93912.迭代法最佳松弛因子的确定实验程序:clear all;clc;close all;count=zeros(1,19);tem=1;for w=1.8:0.01:1.98hx=101;hy=101;m=100;n=100;v1=ones(hy,hx);%%%%%设置边界条件v1(hy,:)=ones(1,hx)*100;v1(1,:)=zeros(1,hx);v1(1:hy,1)=0;v1(1:hy,hx)=0;%初始化v2=v1;maxt=1;t=0;k=0;%%%%while(maxt>1e-10)k=k+1; %计算迭代次数maxt=0;for i=2:hy-1for j=2:hx-1v2(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;endendendv1=v2;end%%count(tem)=k;tem=tem+1;endw=1.8:0.01:1.98;figure(1);plot(w,count);axis(1.80,2.00,400,2700);xlabel('松弛因子');ylabel('迭代次数');title('最优松弛因子的选取');实验结果:图5,松弛因子的取值图6,相应的迭代次数迭代次数随松弛因子的变化曲线:图7,迭代次数随松弛因子变化曲线实验结果分析:通过松弛因子的迭代选取,发现最优松弛因子在1.94左右,相应的迭代次数为499次,而理论值为1.9391,迭代次数为491,说明实验结果比较准确,理论与实际相符合。
实验总结:通过本次实验发现有限差分法和分离变量法都能很好的解决电场边值问题,在使用有限差分法求解时,网格划分越细,求解的结果越精确,在超松弛迭代法计算边值问题求解时,松弛因子的选取直接关系到求解问题的时间复杂度。
所以,在使用超松弛因子迭代法计算边值问题时,一定要合理选取松弛因子。