电磁场实验之有限差分法求解金属槽电位问题matlab程序

合集下载

有限差分法Matlab实现课件

有限差分法Matlab实现课件
关语句等,用于实现程序的控制逻辑。
函数与脚本
03
Matlab中的函数和脚本可以用来组织代码和实现特
定功能,支持参数传递和局部变量。
Matlab的数据类型
数值型
数值型变量用于存储数字数据,包括整数 和浮点数。
单元数组
单元数组是一种特殊的数据类型,可以用 来存储多个字符串或数值型数据,每个元 素用方括号括起来。
总结词:三维有限差分法是求解偏微分方程的一种数值 方法,通过在三个方向上将方程离散化,用差分近似代 替微分,从而将原问题转化为求解一系列线性方程组。
1. 将求解区域划分为一系列离散的网格点;
详细描述:三维有限差分法通常采用如下的步骤进行实 现
2. 用差分近似代替微分,将原微分方程转化为差分方 程;
3. 利用线性方程组的求解方法,如高斯消元法、迭代法 等,求解差分方程;
r(i,i+1) = -2/h^2 + x(i+1)^2/h^2;
b(i) = (u(i+1) - 2*u(i) + u(i-1))/h^2 x(i)^2*u(i)/h^2;
一维有限差分法的代码示例及解析
end
r(1,1) = r(N,N) = 4/h^2;
b(1) = b(N) = (u(2) - u(1))/h^2;
在图像处理中的应用
图像去噪
有限差分法可以用来对图像进行去噪处理,通过减少图像中的噪声 来提高图像质量。
图像增强
有限差分法可以用来增强图像的边缘和细节,提高图像的视觉效果 。
图像重建
有限差分法可以用来从部分图像中重建出完整的图像,应用于计算 机视觉、模式识别等领域。
05
CATALOGUE
Matlab实现的代码示例及解析

工程电磁场C++编程作业-一、用超松弛迭代法求解接地金属槽内电位的分布二、按对称场差分格式求解电位的分布

工程电磁场C++编程作业-一、用超松弛迭代法求解接地金属槽内电位的分布二、按对称场差分格式求解电位的分布

工程电磁场实验报告——C++编程课题一、用超松弛迭代法求解接地金属槽内电位的分布二、按对称场差分格式求解电位的分布一、用超松弛迭代法求解接地金属槽内电位的分布一、实验原理二、程序框图:三、实验内容:1、用超松弛迭代法求解接地金属槽内点位分布1)内容及要求:2)实验思路:由超松弛迭代法,将网格分成5*5列,边界点正好都是网格的节点,对所有的节点进行编号,并记录节点的坐标位置,并用一个二维数组进行表示u1[5][5],此数组表示的是迭代后的值。

考虑到迭代前后的数值不一样,再用一个二维数组表示迭代之前的数值u2[5][5]。

运用C++的知识在计算机上将边界值和内节点进行赋值,即将节点离散化。

然后开始迭代。

迭代开始之前将另一个数组b赋值,用数组a给其赋值,表示迭代之前的值,好用于后面精度的比较。

开始进行迭代时,根据超松弛公式将迭代方程编写输入。

每次迭代结束后将数组a和数组b对应的值进行比较,即是精度的计算。

如果误差大于所规定的误差0.00001,将a的值赋给b,然后继续进行迭代。

直到当迭代前后数值误差小于所规定的误差时停止迭代。

并比较迭代因子的大小对收敛次数的影响,选取最烧收敛次数的迭代因子作为实验最后的输出结果。

最后输出最适合迭代因子、迭代的次数和迭代后各点的电位值。

3)程序如下://********用超松弛迭代法求解接地金属槽内电位的分布********#include<iostream.h>#include<math.h>#include<iomanip.h>Void main(){double u1[5][5],u2[5][5];int flag=1000,i,j,e,n;double a,d;//a最佳加速收敛因子for(i=0;i<5;i++)for(j=0;j<5;j++){if(i==0)u1[i][j]=100;else u1[i][j]=0;}cout<<"迭代前各电位点上的初始值:"<<endl;for(i=0;i<5;i++){for(j=0;j<5;j++){cout<<u1[i][j]<<" ";//输出迭代初值}cout<<endl;}cout<<"\n";for(d=1;d<2;d+=0.01)//找取迭代次数最少的加速收敛因子{n=0;for(j=0;j<5;j++){u1[0][j]=100;}for(i=1;i<5;i++)for(j=0;j<5;j++){u1[i][j]=0;}do//迭代x次{for(i=0;i<5;i++){for(j=0;j<5;j++){u2[i][j]=u1[i][j];}}for(i=1;i<4;i++)for(j=1;j<4;j++){u1[i][j]=u2[i][j]+(d/4)*(u2[i+1][j]+u2[i][j+1]+u1[i-1][j]+u1[i][j-1]-4*u2[i][j]);}for(i=1;i<4;i++)//判断精度{{for(j=1;j<4;j++){if(fabs(u1[i][j]-u2[i][j])>1e-5){e=1; break; }else e=0; }if(e==1) break; }}n++;//迭代次数}while(e);if(n<flag) {flag=n; a=d; }}cout<<"收敛因子:"<<a<<endl;cout<<endl;cout<<"迭代次数:"<<flag<<endl;cout<<endl;cout<<"各节点上最终电位近似值:"<<endl;for(i=0;i<5;i++){for(j=0;j<5;j++){cout<<setiosflags(ios::fixed)<<setprecision(5)<<setw(8)<<u1[i][j]<<" ";//对齐输出}cout<<endl; }cout<<endl; }4)输出结果:5)总结:最佳收敛因子:1.18此时的最少迭代次数:102、按对称场差分格式求解电位的分布1)内容及要求:2)实验思路:类似与第一题的思路,但只计算一半的区域,对另一半进行对称性计算,减小计算量。

有限差分法

有限差分法

班级:通信13-4 姓名:学号:指导教师:**成绩:电子与信息工程学院信息与通信工程系求解金属槽的电位分布1.实验原理利用有限差分法和matlab软件解决电位在金属槽中的分布。

有限差分法基本思想是把连续的定解区域用有限个离散点构成的网格来代替,这些离散点称作网格的节点;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近似,积分用积分和来近似,于是原微分方程和定解条件就近似地代之以代数方程组,即有限差分方程组,解此方程组就可以得到原问题在离散点上的近似解.然后再利用插值方法便可以从离散解得到定解问题在整个区域上的近似解.在采用数值计算方法求解偏微分方程时,若将每一处导数由有限差分近似公式替代,从而把求解偏微分方程的问题转换成求解代数方程的问题。

2.有限差分法方程的定解问题就是在满足某些定解条件下求微分方程的解。

在空间区域的边界上要满足的定解条件称为边值条件。

如果问题与时间有关,在初始时刻所要满足的定解条件,称为初值条件。

不含时间而只带边值条件的定解问题,称为边值问题。

与时间有关而只带初值条件的定解问题,称为初值问题。

同时带有两种定解条件的问题,称为初值边值混合问题。

定解问题往往不具有解析解,或者其解析解不易计算。

所以要采用可行的数值解法。

有限差分方法就是一种数值解法,它的基本思想是先把问题的定义域进行网格剖分,然后在网格点上,按适当的数值微分公式把定解问题中的微商换成差商,从而把原问题离散化为差分格式,进而求出数值解。

此外,还要研究差分格式的解的存在性和唯一性、解的求法、解法的数值稳定性、差分格式的解与原定解问题的真解的误差估计、差分格式的解当网格大小趋于零时是否趋于真解(即收敛性),等等。

有限差分方法具有简单、灵活以及通用性强等特点,容易在计算机上实现。

2.1有限差分法原理图1-1 有限差分法的网格划分导体槽中静电场的边值问题的拉普拉斯方程为:22220x y ϕϕ∂∂+=∂∂ (1-1) 为简单起见,将场域分成足够小的正方形网格,网格线之间的距离为h ,0h →。

Matlab实现电磁场数值计算

Matlab实现电磁场数值计算

第2章
第2章
Matlab直观描述复杂的物理现象
均匀带电线段的电场和电势分布
电量均匀分布在长2L的线段上,单位长度上的电荷密度为τ。 (1)求任一点的电场强度,电场强度分布曲面的规律是什么? (2)求任一点的电势,电势分布曲面的规律是什么?电场线和等 势线是如何分布的?
距离带电线段越近, 电势就越高。

数值法
有限差分法 有限元法 边界元法 矩量法 积分方程法

计算电磁场问题的方法 数值法 解析法 分离变量法:严格求解偏微分方程的经典方法 变换数学法:严格求解积分方程的方法 解析法的优点是: ①可将解答表示为已知函数的显式,从而计算出精确的数值结果; ②可以作为近似解和数值解的检验标准; ③在解析过程中和在解的显式中可以观察到问题的内在联系和各个 参数对数值结果所起的作用。
电磁场分布型问题的数值积分法 梯形法
Matlab实现电磁场数值计算
均匀带电线段的电场
真空中有一长为L的均匀带电直导线,带 电量为Q ,试求中垂线上P 点的电场。
dz
解析法:
z 1 1 Ez - ( ) 3 dz 2 2 2 2 L1 4 π ( z ) 2 2 2 4 π o L L o 2 1 L2 L1 L ( 2 2 ) E L d z 2 2 2 2 4 π L L o 4π o ( z ) 2 1
N越大,子区间越窄,数值解和解析解越接近;
当距离ρ 大于30后,数值解与解析解十分接近,能够满足电磁场工程的一般要求。
z L / 2 (n 0.5)z NMAX=1000; Q=1; N z L=10; E p=Q/L; 4 0 n1 2 L / 2 (n 0.5)z 2 3 2 aa=[1,5,10,20,30,40,50,100,600,1000,0]; eplot1=aa L eplot2=aa E E0=(1/36/pi)*1e-9; 2 0 L2 4 2 disp(' ') disp('参数取值:') disp([ ‘ ','棒长L=',num2str(L),',','棒的总电荷Q=',num2str(Q),',','N=',num2str(NMAX)]) disp(' ') disp([ ‘ ','距离a',' ','数值解E',' ','精确解E1']); i=1; while(1); a=aa(i); if a<=0 break;end dz=L/NMAX; E=0; for n=1:NMAX temp=sqrt(a*a+((n-0.5)*dz-L/2)^2); E=E+dz/temp^3; end E=p*a/(4*pi*E0)*E; eplot1(i)=log(E) E1=p*L/(2*pi*E0*a*sqrt(4*a*a+L*L)); eplot2(i)=log(E1) disp([' ',num2str(a),' ',num2str(E),' ',num2str(E1)]); i=i+1; end clf plot(aa(1:10),eplot1(1:10),'r-',aa(1:10),eplot2(1:10),'b.','MarkerSize',20,'LineWidth',2) legend('数值解','解析解','Location','Best') xlabel('距离\rho') ylabel('log(E)')

有限差分法的Matlab程序

有限差分法的Matlab程序

有限差分法的M a t l a b程序有限差分法的Matlab程序(椭圆型方程)function FD_PDE(fun,gun,a,b,c,d)% 用有限差分法求解矩形域上的Poisson方程tol=10^(-6); % 误差界N=1000; % 最大迭代次数n=20; % x轴方向的网格数m=20; % y轴方向的网格数h=(b-a)/n; % x轴方向的步长l=(d-c)/m; % y轴方向的步长for i=1:n-1x(i)=a+i*h;end % 定义网格点坐标for j=1:m-1y(j)=c+j*l;end % 定义网格点坐标u=zeros(n-1,m-1); %对u赋初值% 下面定义几个参数r=h^2/l^2;s=2*(1+r);k=1;% 应用Gauss-Seidel法求解差分方程while k<=N% 对靠近上边界的网格点进行处理% 对左上角的网格点进行处理z=(-h^2*fun(x(1),y(m-1))+gun(a,y(m-1))+r*gun(x(1),d)+r*u(1,m-2)+u(2,m-1))/s; norm=abs(z-u(1,m-1));u(1,m-1)=z;% 对靠近上边界的除第一点和最后点外网格点进行处理for i=2:n-2z=(-h^2*fun(x(i),y(m-1))+r*gun(x(i),d)+r*u(i,m-2)+u(i+1,m-1)+u(i-1,m-1))/s;if abs(u(i,m-1)-z)>norm;norm=abs(u(i,m-1)-z);endu(i,m-1)=z;end% 对右上角的网格点进行处理z=(-h^2*fun(x(n-1),y(m-1))+gun(b,y(m-1))+r*gun(x(n-1),d)+r*u(n-1,m-2)+u(n-2,m-1))/s; if abs(u(n-1,m-1)-z)>normnorm=abs(u(n-1,m-1)-z);endu(n-1,m-1)=z;% 对不靠近上下边界的网格点进行处理for j=m-2:-1:2% 对靠近左边界的网格点进行处理z=(-h^2*fun(x(1),y(j))+gun(a,y(j))+r*u(1,j+1)+r*u(1,j-1)+u(2,j))/s;if abs(u(1,j)-z)>normnorm=abs(u(1,j)-z);endu(1,j)=z;% 对不靠近左右边界的网格点进行处理for i=2:n-2z=(-h^2*fun(x(i),y(j))+u(i-1,j)+r*u(i,j+1)+r*u(i,j-1)+u(i+1,j))/s;if abs(u(i,j)-z)>normnorm=abs(u(i,j)-z);endu(i,j)=z;end% 对靠近右边界的网格点进行处理z=(-h^2*fun(x(n-1),y(j))+gun(b,y(j))+r*u(n-1,j+1)+r*u(n-1,j-1)+u(n-2,j))/s;if abs(u(n-1,j)-z)>normnorm=abs(u(n-1,j)-z);endu(n-1,j)=z;end% 对靠近下边界的网格点进行处理% 对左下角的网格点进行处理z=(-h^2*fun(x(1),y(1))+gun(a,y(1))+r*gun(x(1),c)+r*u(1,2)+u(2,1))/s;if abs(u(1,1)-z)>normnorm=abs(u(1,1)-z);endu(1,1)=z;% 对靠近下边界的除第一点和最后点外网格点进行处理for i=2:n-2z=(-h^2*fun(x(i),y(1))+r*gun(x(i),c)+r*u(i,2)+u(i+1,1)+u(i-1,1))/s;if abs(u(i,1)-z)>normnorm=abs(u(i,1)-z);endu(i,1)=z;end% 对右下角的网格点进行处理z=(-h^2*fun(x(n-1),y(1))+gun(b,y(1))+r*gun(x(n-1),c)+r*u(n-1,2)+u(n-2,1))/s;if abs(u(n-1,1)-z)>normnorm=abs(u(n-1,1)-z);endu(n-1,1)=z;% 结果输出if norm<=tolfid = fopen('FDresult.txt', 'wt');fprintf(fid,'\n********用有限差分法求解矩形域上Poisson方程的输出结果********\n\n'); fprintf(fid,'迭代次数: %d次\n\n',k);fprintf(fid,' x的值 y的值 u的值 u的真实值 |u-u(x,y)|\n');for i=1:n-1for j=1:m-1fprintf(fid, '%8.3f %8.3f %14.8f %14.8f %14.8f\n', [x(i),y(j),u(i,j),gun(x(i),y(j)),abs(u(i,j)-gun(x(i),y(j)))]);endendfclose(fid);break; % 用来结束while循环endk=k+1;endif k==N+1fid = fopen('FDresult.txt', 'wt');fprintf(fid,'超过最大迭代次数,求解失败!');fclose(fid);endclc[a1 a2 a3 a4] = textread('F:\aa.txt','%f %f %f %f');a = [a1 a2 a3];a=a';b=a4';[pa,mina,maxa,pb,minb,maxb]=premnmx(a,b);net =newrb(pa,pb,0,1.3,24,2);an =sim(net,pa);E = an - pb;m =sse(E)n = mse(E)[f1 f2 f3 f4]= textread('F:\bb.txt','%f %f %f %f');f = [f1 f2 f3];f=f';pf = tramnmx(f,mina,maxa);an2 = sim(net,pf);g =postmnmx(an2,minb,maxb);g= g';E2 = g- f4;mm =sse(E2)nn = mse(E2)。

matlab实现有限差分法计算电场强度(最新)

matlab实现有限差分法计算电场强度(最新)

实验一:有限差分法研究静电场边值问题实验报告人:年级和班级:学号:1. 实验用软件工具: Matlab2. 实验原理:电磁场课本P36-381)差分方程2)差分方程组的解简单迭代法高斯-赛德尔迭代法逐次超松弛法3. 实验步骤:1)简单迭代法程序:hx=41;hy=21;v1=zeros(hy,hx);v1(hy,:)=zeros(1,hx);v1(1,:)=ones(1,hx)*100;v1(:,1)=zeros(hy,1);v1(:,hx)=zeros(hy,1);v1v2=v1;maxt=1;t=0;k=0;while(maxt>1e-5)k=k+1;maxt=0;for i=2:hy-1for j=2:hx-1v2(i,j)=(v1(i,j+1)+v1(i+1,j)+v1(i-1,j)+v1(i,j-1))/4;t=abs(v2(i,j)-v1(i,j));if(t>maxt) maxt=t;endendendv1=v2;endv2kclfsubplot(1,2,1),mesh(v2)axis([0,41,0,21,0,100])subplot(1,2,2),contour(v2,15)hold onaxis([-1,42,-1,25])plot([1,1,hx,hx,1],[1,hy+1,hy+1,1,1],'r')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当W=1e-5, 迭代次数:1401次2)高斯-赛德尔迭代法程序:hx=41;hy=21;v1=ones(hy,hx);v1(hy,:)=zeros(1,hx);v1(1,:)=ones(1,hx)*100;v1(:,1)=zeros(hy,1);v1(:,hx)=zeros(hy,1);v2=v1;maxt=1;t=0;k=0;while(maxt>1e-5)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;endv2kclfsubplot(1,2,1),mesh(v2)axis([0,41,0,21,0,100])subplot(1,2,2),contour(v2,15)hold onaxis([-1,42,-1,25])plot([1,1,hx,hx,1],[1,hy+1,hy+1,1,1],'r')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当W=1e-5, 迭代次数:740次3)逐次超松弛法程序:hx=41;hy=21;v1=zeros(hy,hx);v1(hy,:)=zeros(1,hx);v1(1,:)=ones(1,hx)*100;v1(:,1)=zeros(hy,1);v1(:,hx)=zeros(hy,1);v1v2=v1;maxt=1;t=0;alpha=input('please input the value of alpha(alpha>=1 && alpha<2):');k=0;while(maxt>1e-5)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))*alpha/4; t=abs(v2(i,j)-v1(i,j));if(t>maxt) maxt=t;endendendv1=v2;endv2kclfsubplot(1,2,1),mesh(v2)axis([0,41,0,21,0,100])subplot(1,2,2),contour(v2,15)hold onaxis([-1,42,-1,25])plot([1,1,hx,hx,1],[1,hy+1,hy+1,1,1],'r')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当W=1e-5, alpha取不同值时迭代次数4)画三维曲面图和等位线图(逐次超松弛法最佳迭代次数时)程序:hx=41;hy=21;v1=zeros(hy,hx);v1(hy,:)=zeros(1,hx);v1(1,:)=ones(1,hx)*100;v1(:,1)=zeros(hy,1);v1(:,hx)=zeros(hy,1);v1v2=v1;maxt=1;t=0;alpha=1.8;k=0;while(maxt>1e-5)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))*alpha/4; t=abs(v2(i,j)-v1(i,j));if(t>maxt) maxt=t;endendendv1=v2;endv2kclfsubplot(1,2,1),mesh(v2)axis([0,41,0,21,0,100])subplot(1,2,2),contour(v2,15)hold onaxis([-1,42,-1,25])plot([1,1,hx,hx,1],[1,hy+1,hy+1,1,1],'r')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贴图:4.实验结论(1)matlab软件在使用有限差分法研究静电场边值问题中有着重要的作用,它能够快捷有效并且准确的解决边值问题,是解决计算相对复杂问题的有效工具。

Matlab-求解金属槽槽内电位分布---副本培训讲学

M a t l a b-求解金属槽槽内电位分布---副本Matlab 求解金属槽槽内电位分布摘要运用有限差分法将场域离散为许多小网格,将求解连续函数ϕ的泊松方程的问题换为求解网格节点上ϕ的差分方程组的问题。

用matlab程序计算出槽内电位分布的结果。

通过数值解和精确解的比较来验证有限差分法的可行性。

关键词:有限差分法; Matlab;金属槽槽内电位Solving the metal slots potential with MatlabAbstract:U sing the finite difference method (FDM)field is discreted into many small grid, transform ing the problem solving poisson equation with continuous function ϕ for solving the differential equations of grid node ϕ. We use Matlab program to calculate the potential distribution in slot results. The values got from these two methods are compared, which would be a validation of the feasibility of the Finite Difference Method.1 引言如图1所示,尺寸为a×a的正方形金属导体槽三面接地,上方是一块密实的但与之绝缘的金属盖板,其电位100Vϕ=,求槽内电位的分布情况。

这是二维静态场域的边值问题,在直角坐标系中,接地导体矩形槽中的电位函数p满足拉普拉斯方程2222x yϕϕ∂∂+=∂∂。

Xaa图1 正方形金属槽其边界条件满足第一类边界条件问题0(x,y)0x ϕ== (x,y)0x aϕ==(x,y)0y ϕ== (x,y)100y aϕ==我们由此可求出矩形导体槽内电位的分布数值解.将金属槽内场域D 用正方形网格进行粗略划分,其网格节点分布如图2所示网格间距为h=a/4,各边的节点数为L+1=5.234512345图2 网格划分2 求解2.1数值解求解过程由于本文采用的是超松弛迭代法的差分方程形式,现给出公式(n 1)(n)(n)(n)(n 1)(n 1)2(n),,1,,11,,1,,(4)4i ji ji ji j i ji j i j i jw h f ϕϕϕϕϕϕϕ+++++--=++++--(2.1)进行迭代,因为满足拉普拉斯方程故 f=0。

有限差分法计算金属槽内电位分布

班级:物理08-2B 姓名:胡艳学号:08070201010有限差分法计算金属槽内电位分布一、选题依据求解电位分布问题是物理学中最常见的问题之一,采用有限差分法解决此类问题是十分有效的。

差分方程确定之后,一般选用迭代法求解,这是由于方程组系数矩阵中有大量元素为零,并且系数矩阵形成比较简单,有规律和重复。

在迭代过程中常常可以一边形成系数矩阵一边计算,以节省内存,因而迭代法比直接法更常用。

迭代法中又以超松弛迭代法最常用,以下给出超松弛迭代方法的公式。

对于二维场泊松方程等距剖分差分格式公式为()()()()()()()⎪⎪⎭⎫ ⎝⎛Φ--+Φ+-+Φ++Φ++Φ+Φ=+Φj i n j i n j i n j i n j i n ji n ji n ,41,1,111,,14,,1α(2.67)式中α称为加速收敛因子或超松弛因子,它的数值决定超松弛程度,影响迭代解收敛的速度。

α取值范围是1 ≤ α <2 (2.68)加速收敛因子α取值因问题而异,对于第一类边值问题,若一方形场域由正方形网格划分,每边的节点数为(n+1),则加速收敛因子α可按下式计算:nπαs i n12+=(2.69)若一矩形场域由边长为h 的正方形网格划分为mh 和nh ,且m 和n 都很大(一般都要大于15),那么加速收敛因子α为n m 221122+-=πα (2.70)一般情况下,α的最佳值只能是凭经验选取。

对于其他形状的场域,也可用等效矩形面积的处理方法,即得出等效矩形面积后,再用式(2.70)求出最佳的α。

下面我们来看一个计算电位分布的实例。

二、处理过程实例:有一长接地金属槽,横截面积如图2.15所示,其侧壁与底面电位均为零,顶盖电位为100V ,求槽内电位分布。

分析:对于此槽中间区段电位分布,可理想化为二维问题。

选定直角坐标系,槽内电位函数Φ满足拉普拉斯方程,构成一类边值问题。

2222=∂Φ∂+∂Φ∂yxVay a x 1006.0,0=Φ=<<Vay a x y a x ay x 06.00,0,06.00,0=Φ=Φ=Φ≤==≤≤≤=<<按有限差分法计算步骤,解题过程如下。

Matlab-求解金属槽槽内电位分布---副本培训讲学

M a t l a b-求解金属槽槽内电位分布---副本Matlab 求解金属槽槽内电位分布摘要运用有限差分法将场域离散为许多小网格,将求解连续函数ϕ的泊松方程的问题换为求解网格节点上ϕ的差分方程组的问题。

用matlab程序计算出槽内电位分布的结果。

通过数值解和精确解的比较来验证有限差分法的可行性。

关键词:有限差分法; Matlab;金属槽槽内电位Solving the metal slots potential with MatlabAbstract:U sing the finite difference method (FDM)field is discreted into many small grid, transform ing the problem solving poisson equation with continuous function ϕ for solving the differential equations of grid node ϕ. We use Matlab program to calculate the potential distribution in slot results. The values got from these two methods are compared, which would be a validation of the feasibility of the Finite Difference Method.1 引言如图1所示,尺寸为a×a的正方形金属导体槽三面接地,上方是一块密实的但与之绝缘的金属盖板,其电位100Vϕ=,求槽内电位的分布情况。

这是二维静态场域的边值问题,在直角坐标系中,接地导体矩形槽中的电位函数p满足拉普拉斯方程2222x yϕϕ∂∂+=∂∂。

Xaa图1 正方形金属槽其边界条件满足第一类边界条件问题0(x,y)0x ϕ== (x,y)0x aϕ==(x,y)0y ϕ== (x,y)100y aϕ==我们由此可求出矩形导体槽内电位的分布数值解.将金属槽内场域D 用正方形网格进行粗略划分,其网格节点分布如图2所示网格间距为h=a/4,各边的节点数为L+1=5.234512345图2 网格划分2 求解2.1数值解求解过程由于本文采用的是超松弛迭代法的差分方程形式,现给出公式(n 1)(n)(n)(n)(n 1)(n 1)2(n),,1,,11,,1,,(4)4i ji ji ji j i ji j i j i jw h f ϕϕϕϕϕϕϕ+++++--=++++--(2.1)进行迭代,因为满足拉普拉斯方程故 f=0。

有限差分法解决电场边值问题

y=0
ϕ =0
o
x
a
具体要求: 具体要求: (1) 编写一个计算机程序(Matlab):以步距 编写一个计算机程序( 以步距h=a/40的正方形网格离散化场域, 的正方形网格离散化场域, ) 以步距 的正方形网格离散化场域 的数值解。 然后应用有限差分法求电位ϕ的数值解。 (2)求相邻两次迭代值的指定的最大允许误差小于 -5的迭代收敛解和迭代次 求相邻两次迭代值的指定的最大允许误差小于10 求相邻两次迭代值的指定的最大允许误差小于 分别用简单迭代法、高斯-赛德尔迭代法和逐次超松弛法 赛德尔迭代法和逐次超松弛法)。 数(分别用简单迭代法、高斯 赛德尔迭代法和逐次超松弛法)。 (3) 对逐次超松弛法,分别取α为n个不同的值和最佳值α0,求电位ϕ的数值解, 对逐次超松弛法, 的数值解, 个不同的值和最佳值 以此分析加速收敛因子的作用。 以此分析加速收敛因子的作用。从迭代收敛时的迭代次数和最终数值解这两 方面总结自已的看法。 方面总结自已的看法。 (4)用计算机描绘等位线分布。 用计算机描绘等位线分布。 用计算机描绘等位线分布
y
u=0 u=0 u=100 u=0
y y
u=0 u=0 0 u=0 u=100
0
x
hy x i行
行 hx=5 列 hy=3
j列 hx x
y 高斯-赛德尔迭代法 高斯 赛德尔迭代法 1 ϕi(,kj+1) = (ϕi(+k1), j + ϕi(,kj)+1 + ϕi(−k1+1j) + ϕi(,kj+1) ) , −1 4 u=0
简单迭代法
ϕ
( k +1) i, j
1 (k ) k = (ϕ i −1, j + ϕ i(,kj)−1 + ϕ i(+1), j + ϕ i(,kj)+1 ) 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档