您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 电磁场实验一_有限差分法的matlab实现
电磁场与电磁波实验报告实验项目:_______有限差分法______班级:_______12电子2______实验日期:__2014年12月23日姓名:______陈奋裕____学号:______1215106003_____组员姓名:__________组员学号:___________指导教师:_____张海______一、实验目的及要求1、学习有限差分法的原理与计算步骤;2、学习用有限差分法解静电场中简单的二维静电场边值问题;3、学习用Matlab语言描述电磁场与电磁波中内容,用matlab求解问题并用图形表示出了,学习matlab语言在电磁波与电磁场中的编程思路。二、实验内容理论学习:学习静电场中边值问题的数值法中的优先差分法的求解知识;实践学习:学习用matlab语言编写有限差分法计算二维静电场边值问题;三、实验仪器或软件电脑(WIN7)、Matlab7.11四、实验原理基本思想是把连续的定解区域用有限个离散点构成的网格来代替,这些离散点称作网格的节点;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近似,积分用积分和来近似,于是原微分方程和定解条件就近似地代之以代数方程组,即有限差分方程组,解此方程组就可以得到原问题在离散点上的近似解。然后再利用插值方法便可以从离散解得到定解问题在整个区域上的近似解。简单迭代法:这一方法的求解过程是,先对场域内的节点赋予迭代初值(0),ij,这里上标(0)表示0次(初始)近似值。然后按Laplace方程(k1)(k)(k)(k)(k),1,,11,,11[]4ijijijijij(i,j=1,2,…)进行反复迭代(k=0,1,2,…)。若当第N次迭代以后,所有的内节点的相邻两次迭代值之间的最大误差不超过允许范围,即(N)(N-1),,max|-|Wijij这里的W是预设的允许误差,此时即可终止迭代,并将第N次迭代结果作为内节点上电位的最终数值解。五、实验步骤1.理论学习2.编写matlab程序六、结果分析与问题讨论1.简单迭代法程序:hx=1;%设置x步长hy=1;%设置y步长hv=10;%等势线条数Accuracy=10^-3;%精度为0.001t=0;%迭代次数x=4/hx+1;%x轴点数y=4/hy+1;%y轴点数v0=100;%导体盖电位v=zeros(x,y);%用零矩阵对网格各节点电位进行初始化v_pre=zeros(x,y);%用零矩阵对前一时刻网格各节点电位进行初始化v(y,:)=v0;%对沿盖板各节点赋初始值v0%设初始迭代值值fork=2:y-1v(k,2:x-1)=(k-1)*(v0/(y-1));end%开始迭代while(max(max(abs(v-v_pre)))Accuracy)v_pre=v;t=t+1;fori=2:x-1forj=2:y-1v(i,j)=(v_pre(i-1,j)+v_pre(i,j-1)+v_pre(i+1,j)+v_pre(i,j+1))/4;endendend%输出fprintf('节点电势值矩阵:\n');disp(fliplr(flipud(v)));fprintf('迭迭代次数:%d\n',t);%绘制等势线contour(v,hv,'linewidth',2);axis([0.5x+0.50.5y+0.5]);holdon;plot([1,1,x,x,1],[1,y,y,1,1],'k','linewidth',2);text((x+1)/2,0.8,'0V','fontsize',11);text((x+1)/2,y+0.2,'100V','fontsize',11);text(0.7,(y+1)/2,'0V','fontsize',11);text(x+0.1,(y+1)/2,'0V','fontsize',11);title('无限长直金属槽的等势线图','fontsize',16,'color','k');holdoff;输出结果:0V100V0V0V无限长直金属槽的等势线图0.511.522.533.544.555.50.511.522.533.544.555.5可见点数太少,等势线不够平滑。重新设置步长hx=0.1;%设置x步长hy=0.1;%设置y步长可得下图:无限长直金属槽的等势线图0V100V0V0V相对可以得出比较准确的等势线图。当然,这里也可以通过插值的方法实现。2.算法比较以允许误差为0.001为准,将场域16等分。输出如下:可见迭代次数为28次。发现迭代次数明显减少了。
本文标题:电磁场实验一_有限差分法的matlab实现
链接地址:https://www.777doc.com/doc-2159428 .html