电磁场实验一_有限差分法的matlab实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电磁场与电磁波实验报告
实验项目:_______有限差分法__ ____ 班级:_____ __12电子2 ____ __ 实验日期:__2014年12月23日
姓名:___ _ __陈奋裕 __ __ 学号:___ ___1215106003 _____ 组员姓名:___ _ __ __ __ 组员学号:___ ___ _____ 指导教师:_ ____张海 ______
一、实验目的及要求
1、学习有限差分法的原理与计算步骤;
2、学习用有限差分法解静电场中简单的二维静电场边值问题;
3、学习用Matlab 语言描述电磁场与电磁波中内容,用matlab 求解问题并用图形表示出了,学习matlab 语言在电磁波与电磁场中的编程思路。
二、实验内容
理论学习:学习静电场中边值问题的数值法中的优先差分法的求解知识; 实践学习:学习用matlab 语言编写有限差分法计算二维静电场边值问题;
三、实验仪器或软件
电脑(WIN7)、Matlab7.11
四、实验原理 基本思想是把连续的定解区域用有限个离散点构成的网格来代替, 这些离散点称作网格的节点;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近似, 积分用积分和来近似,于是原微分方程和定解条件就近似地代之以代数方程组,即有限差分方程组 , 解此方程组就可以得到原问题在离散点上的近似解。
然后再利用插值方法便可以从离散解得到定解问题在整个区域上的近似解。
简单迭代法: 这一方法的求解过程是,先对场域内的节点赋予迭代初值(0)
,i j ϕ,这里上标(0)表示0次(初始)近似值。
然后按Laplace 方程
(k 1)(k)(k)(k)(k),1,,11,,11
[]4
i j i j i j i j i j ϕϕϕϕϕ+--++=+++(i,j=1,2,…) 进行反复迭代(k=0,1,2,…)。
若当第N 次迭代以后,所有的内节点的相邻两次迭代值之间的最大误差不超过允许范围,即
(N)(N-1),,max|-|<W i j i j ϕϕ
这里的W 是预设的允许误差,此时即可终止迭代,并将第N 次迭代结果作为内节点上电位的最终数值解。
五、实验步骤
1.理论学习
2.编写matlab 程序
六、结果分析与问题讨论
1.简单迭代法
程序:
hx=1;%设置x 步长
hy=1;%设置y 步长
hv=10;%等势线条数
Accuracy=10^-3;%精度为0.001
t=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
%设初始迭代值值
for k=2:y-1
v(k,2:x-1)=(k-1)*(v0/(y-1));
end
%开始迭代
while(max(max(abs(v-v_pre)))>Accuracy)
v_pre=v;
t=t+1;
for i=2:x-1
for j=2:y-1
v(i,j)=(v_pre(i-1,j)+v_pre(i,j-1)+v_pre(i+1,j)+v_pre(i,j+1))/4; end
end
end
%输出
fprintf('节点电势值矩阵:\n');
disp(fliplr(flipud(v)));
fprintf('迭迭代次数:%d\n',t);
%绘制等势线
contour(v,hv,'linewidth',2);
axis([0.5 x+0.5 0.5 y+0.5]);
hold on;
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');
hold off;
输出结果:
无限长直金属槽的等势线图
0.51 1.52 2.53 3.54 4.55 5.5
0.51
1.5
2
2.5
3
3.5
4
4.5
5
5.5
可见点数太少,等势线不够平滑。
重新设置步长
hx=0.1;%设置x 步长
hy=0.1;%设置y 步长
可得下图:
无限长直金属槽的等势线图0V
100V
0V 0V
相对可以得出比较准确的等势线图。
当然,这里也可以通过插值的方法实现。
2.算法比较
以允许误差为0.001为准,将场域16等分。
输出如下:
可见迭代次数为28次。
发现迭代次数明显减少了。