您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 电磁场仿真matlab
电磁场边值问题求解一、实验目的一个二维静电场,电位函数为yx,,边界条件如题4.29图所示,将正方形场域分成20个正方形网格。有16个内部网格点。假定16个网格点的初始值都定为零,试用超松弛法确定16个内网格点的电位值。二、实验程序Matlab程序如下:M=6;N=6;%网格节点数6*6=36个U1=ones(N,M);%行列二维数组m=5,n=5;%横纵向网格数U1(1,:)=ones(1,M)*50;%条件边界值U1(N,:)=ones(1,M)*100;fori=1:NU1(i,1)=0;U1(i,M)=100;endt1=(cos(pi/m)+cos(pi/n))/2;w=2/(1+sqrt(1-t1*t1));U2=U1;P=1;T=0;%初始化k=0while(P1e-5)%由v1迭代,算出v2,迭代精度1e-5k=k+1;%计算迭代次数P=0;fori=2:N-1;%行循环forj=2:M-1;%列循环U2(i,j)=U1(i,j)+(U1(i,j+1)+U1(i+1,j)+U2(i-1,j)+U2(i,j-1)-4*U1(i,j))*w/4;%差分方程T=abs(U2(i,j)-U1(i,j));if(TP)P=T;end0V100V50V100VendendU1=U2;endsubplot(1,2,1),mesh(U2);%三维图axis([0,6,0,6,0,100]);subplot(1,2,2),contour(U2,15);%等电位线holdon;x=1:1:M;y=1:1:N[xx,yy]=meshgrid(x,y);%栅格[Gx,Gy]=gradient(U2,0.6,0.6);%梯度quiver(xx,yy,Gx,Gy,-1.0,'r');%根据梯度画箭头axis([-1.5,M+2.5,-2,13]);%坐标边框设置plot([1,1,M,M,1],[1,N,N,1,1],'K');%画导体边框text(M/2-0.5,N+0.4,'100V','fontsize',6);%上标注text(M/2,0.3,'50V','fontsize',6);%下标注text(-0.3,N/2,'0V','fontsize',5);%左标注text(M+0.1,N/2,'100V','fontsize',5);%右标注holdoff三、程序运行结果:1、场域内等电位线、电场线分布图所求16个内网格点电位值如下表(精度1e-5)四、实验总结通过这次使用matlab编写程序求解电磁场的实验,对电磁场这门课程的我有了更加直观的图形理解和计算机求解的认识。实验用超松弛法求解有界电场内的16个内网格点的过程让我亲身实践了电磁场理论计算的形象化结果,加深了我对电磁场边值问题的理解,特别是超松弛方法和简单迭代的运用。
本文标题:电磁场仿真matlab
链接地址:https://www.777doc.com/doc-8532521 .html