电磁场实验一_有限差分法的matlab实现

合集下载

电磁场实验一_有限差分法的matlab实现

电磁场实验一_有限差分法的matlab实现

电磁场与电磁波实验报告实验项目:_______有限差分法__ ____ 班级:_____ __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[]4i 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 次迭代结果作为内节点上电位的最终数值解。

matlab有限差分法

matlab有限差分法

matlab有限差分法一、前言Matlab是一种广泛应用于科学计算和工程领域的计算机软件,它具有简单易学、功能强大、易于编程等优点。

有限差分法(Finite Difference Method)是一种常用的数值解法,它将微分方程转化为差分方程,通过对差分方程进行离散化求解,得到微分方程的数值解。

本文将介绍如何使用Matlab实现有限差分法。

二、有限差分法基础1. 有限差分法原理有限差分法是一种通过将微分方程转化为离散形式来求解微分方程的数值方法。

其基本思想是将求解区域进行网格划分,然后在每个网格点上进行逼近。

假设要求解一个二阶常微分方程:$$y''(x)=f(x,y(x),y'(x))$$则可以将其转化为离散形式:$$\frac{y_{i+1}-2y_i+y_{i-1}}{h^2}=f(x_i,y_i,y'_i)$$其中$h$为网格步长,$y_i$表示在$x_i$处的函数值。

2. 一维情况下的有限差分法对于一维情况下的常微分方程:$$\frac{d^2 y}{dx^2}=f(x,y,y')$$可以使用中心差分法进行离散化:$$\frac{y_{i+1}-2y_i+y_{i-1}}{h^2}=f(x_i,y_i,y'_i)$$这个方程可以写成矩阵形式:$$A\vec{y}=\vec{b}$$其中$A$为系数矩阵,$\vec{y}$为函数值向量,$\vec{b}$为右端项向量。

三、Matlab实现有限差分法1. 一维情况下的有限差分法假设要求解的方程为:$$\frac{d^2 y}{dx^2}=-\sin(x)$$首先需要确定求解区域和网格步长。

在本例中,我们将求解区域设为$[0,2\pi]$,网格步长$h=0.01$。

则可以通过以下代码生成网格:```matlabx = 0:0.01:2*pi;```接下来需要构造系数矩阵和右端项向量。

根据上面的公式,系数矩阵应该是一个三对角矩阵,可以通过以下代码生成:```matlabn = length(x)-2;A = spdiags([-ones(n,1), 2*ones(n,1), -ones(n,1)], [-1 0 1], n, n); ```其中`spdiags`函数用于生成一个稀疏矩阵。

有限差分 matlab

有限差分 matlab

有限差分 MATLAB简介有限差分方法(Finite Difference Method)是一种常用的数值计算方法,用于求解偏微分方程或者常微分方程的数值近似解。

MATLAB是一个功能强大的数值计算软件,可以很方便地实现有限差分方法。

本文将介绍有限差分方法在MATLAB中的应用。

首先,我们将简要介绍有限差分方法的原理和基本思想。

然后,我们将通过一个具体的例子来演示如何使用MATLAB进行有限差分计算。

最后,我们将总结本文内容,并提供一些相关资源供读者进一步深入学习。

有限差分方法原理有限差分方法是一种基于离散化思想的数值计算方法。

它通过将求解区域划分为网格点,并利用离散点上函数值之间的差商逼近导数来近似求解微分方程。

对于一维问题,我们可以将求解区域划分为等距离的网格点,记作x0, x1,x2, …, xn。

每个网格点上函数值记作u0, u1, u2, …, un。

我们希望通过已知边界条件和微分方程来求解其他未知函数值。

有限差分法的基本思想是使用差商逼近导数。

例如,对于一阶导数,我们可以使用前向差分、后向差分或者中心差分来逼近。

其中,前向差分定义为:f'(x) ≈ (f(x+h) - f(x)) / h后向差分定义为:f'(x) ≈ (f(x) - f(x-h)) / h中心差分定义为:f'(x) ≈ (f(x+h) - f(x-h)) / (2h)类似地,我们可以使用更高阶的有限差分来逼近更高阶的导数。

对于二维问题,我们可以将求解区域划分为二维网格点,并在每个网格点上计算函数值。

然后,我们可以使用类似的方法来逼近偏导数。

MATLAB实现在MATLAB中,我们可以很方便地使用矩阵运算和向量化操作来实现有限差分方法。

首先,我们需要定义求解区域和网格点。

假设我们要求解一个一维问题,在区间[0, 1]上进行离散化。

我们可以通过指定网格点个数n和步长h来确定网格点坐标:n = 100; % 网格点个数h = 1/n; % 步长x = linspace(0, 1, n+1); % 网格点坐标接下来,我们需要定义边界条件和微分方程。

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软件在使用有限差分法研究静电场边值问题中有着重要的作用,它能够快捷有效并且准确的解决边值问题,是解决计算相对复杂问题的有效工具。

时域有限差分法对平面TE波的MATLAB仿真

时域有限差分法对平面TE波的MATLAB仿真

时域有限差分法对平面TE波的MATLAB仿真摘要时域有限差分法是由有限差分法发展出来的数值计算方法。

自1966年Yee 在其论文中首次提出时域有限差分以来,时域有限差分法在电磁研究领域得到了广泛的应用。

主要有分析辐射条线、微波器件和导行波结构的研究、散射和雷达截面计算、分析周期结构、电子封装和电磁兼容的分析、核电磁脉冲的传播和散射以及在地面的反射及对电缆传输线的干扰、微光学元器件中光的传播和衍射特性等等。

由于电磁场是以场的形态存在的物质,具有独特的研究方法,采取重叠的研究方法是其重要的特点,即只有理论分析、测量、计算机模拟的结果相互佐证,才可以认为是获得了正确可信的结论。

时域有限差分法就是实现直接对电磁工程问题进行计算机模拟的基本方法。

在近年的研究电磁问题中,许多学者对时域脉冲源的传播和响应进行了大量的研究,主要是描述物体在瞬态电磁源作用下的理论。

另外,对于物体的电特性,理论上具有几乎所有的频率成分,但实际上,只有有限的频带内的频率成分在区主要作用。

文中主要谈到了关于高斯制下完全匹配层的差分公式的问题,通过MATLAB 程序对TE波进行了仿真,模拟了高斯制下完全匹配层中磁场分量瞬态分布。

得到了相应的磁场幅值效果图。

关键词:时域有限差分完全匹配层MATLAB 磁场幅值效果图目录摘要 (1)目录 (3)第一章绪论 (4)1.1 课题背景与意义 (4)1.2 时域有限差分法的发展与应用 (4)2.1 Maxwell方程和Yee氏算法 (7)2.2 FDTD的基本差分方程 (9)2.3 时域有限差分法相关技术 (11)2.3.1 数值稳定性问题 (11)2.3.2 数值色散 (12)2.3.3 离散网格的确定 (13)2.4 吸收边界条件 (13)2.4.1 一阶和二阶近似吸收边界条件 (14)2.4.2 二维棱边及角顶点的处理 (17)2.4.3 完全匹配层 (19)2.5 FDTD计算所需时间步的估计 (23)第三章MATLAB的仿真的程序及模拟 (25)3.1 MATLAB程序及相应说明 (25)3.2 出图及结果 (28)3.2.1程序部分 (28)3.2.2 所出的效果图 (29)第四章结论 (31)参考文献 (32)第一章绪论1.1 课题背景与意义20世纪60年代以来,随着计算机技术的发展,一些电磁场的数值计算方法逐步发展起来,并得到广泛应用,其中主要有:属于频域技术的有限元法(FEM)、矩量法(MM)和单矩法等;属于时域技术方面的时域有限差分法(FDTD)、传输线矩阵法(TLM)和时域积分方程法等。

有限差分法matlab程序一维热传导

有限差分法matlab程序一维热传导

有限差分法matlab程序一维热传导一维热传导是一个常见的物理问题,涉及到热量在一个维度上的传递和分布。

在工程和科学领域中,研究和解决一维热传导问题对于优化系统设计和预测热现象非常重要。

本文将介绍如何使用有限差分法在MATLAB中模拟一维热传导过程。

有限差分法是一种常用的数值解法,用于近似求解微分方程。

它将连续的物理问题离散化,将连续的空间和时间划分为离散的网格点,并通过近似替代微分算子来计算离散点上的数值。

在一维热传导问题中,我们可以将传热方程离散化为差分方程,然后通过迭代计算来模拟热传导过程。

我们需要定义问题的边界条件和初始条件。

对于一维热传导问题,我们通常需要给定材料的热扩散系数、初始温度分布和边界条件。

假设我们研究的是一个长为L的细杆,材料的热扩散系数为α,初始温度分布为T(x,0),边界条件为T(0,t)和T(L,t)。

接下来,我们将空间离散化为N个网格点,时间离散化为M个时间步长。

我们可以使用等距网格,将杆的长度L划分为N个小段,每段的长度为Δx=L/N。

同样,时间也被划分为M个小步长,每个步长的长度为Δt。

这样,我们可以得到网格点的坐标x(i)和时间点的坐标t(j),其中i=1,2,...,N,j=1,2,...,M。

在有限差分法中,我们使用差分近似代替偏导数项。

对于一维热传导方程,我们可以使用向前差分近似代替时间导数项,使用中心差分近似代替空间导数项。

这样,我们可以得到差分方程:(T(i,j+1)-T(i,j))/Δt = α*(T(i+1,j)-2*T(i,j)+T(i-1,j))/Δx^2其中,T(i,j)表示在位置x(i)和时间t(j)的温度。

通过对差分方程进行重排和整理,我们可以得到递推公式:T(i,j+1) = T(i,j) + α*Δt*(T(i+1,j)-2*T(i,j)+T(i-1,j))/Δx^2现在,我们可以在MATLAB中实现这个递推公式。

首先,我们需要定义问题的参数和初始条件。

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

有限差分法解决电场边值问题
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

有限差分法求解偏微分方程MATLAB

有限差分法求解偏微分方程MATLAB

南京理工大学课程考核论文课程名称:高等数值分析论文题目:有限差分法求解偏微分方程*名:**学号: 1成绩:有限差分法求解偏微分方程一、主要内容1.有限差分法求解偏微分方程,偏微分方程如一般形式的一维抛物线型方程:22(,)()u uf x t t xαα∂∂-=∂∂其中为常数具体求解的偏微分方程如下:22001(,0)sin()(0,)(1,)00u u x t x u x x u t u t t π⎧∂∂-=≤≤⎪∂∂⎪⎪⎪=⎨⎪⎪==≥⎪⎪⎩2.推导五种差分格式、截断误差并分析其稳定性;3.编写MATLAB 程序实现五种差分格式对偏微分方程的求解及误差分析;4.结论及完成本次实验报告的感想。

二、推导几种差分格式的过程:有限差分法(finite-difference methods )是一种数值方法通过有限个微分方程近似求导从而寻求微分方程的近似解。

有限差分法的基本思想是把连续的定解区域用有限个离散点构成的网格来代替;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近似,积分用积分和来近似,于是原微分方程和定解条件就近似地代之以代数方程组,即有限差分方程组,解此方程组就可以得到原问题在离散点上的近似解。

推导差分方程的过程中需要用到的泰勒展开公式如下:()2100000000()()()()()()()......()(())1!2!!n n n f x f x f x f x f x x x x x x x o x x n +'''=+-+-++-+- (2-1)求解区域的网格划分步长参数如下:11k k k kt t x x h τ++-=⎧⎨-=⎩ (2-2) 2.1 古典显格式2.1.1 古典显格式的推导由泰勒展开公式将(,)u x t 对时间展开得 2,(,)(,)()()(())i i k i k k k uu x t u x t t t o t t t∂=+-+-∂ (2-3) 当1k t t +=时有21,112,(,)(,)()()(())(,)()()i k i k i k k k k k i k i k uu x t u x t t t o t t tuu x t o tττ+++∂=+-+-∂∂=+⋅+∂ (2-4)得到对时间的一阶偏导数1,(,)(,)()=()i k i k i k u x t u x t uo t ττ+-∂+∂ (2-5) 由泰勒展开公式将(,)u x t 对位置展开得223,,21(,)(,)()()()()(())2!k i k i k i i k i i u uu x t u x t x x x x o x x x x∂∂=+-+-+-∂∂ (2-6)当11i i x x x x +-==和时,代入式(2-6)得2231,1,1122231,1,1121(,)(,)()()()()(())2!1(,)(,)()()()()(())2!i k i k i k i i i k i i i i i k i k i k i i i k i i i iu uu x t u x t x x x x o x x x x u u u x t u x t x x x x o x x x x ++++----⎧∂∂=+-+-+-⎪⎪∂∂⎨∂∂⎪=+-+-+-⎪∂∂⎩(2-7) 因为1k k x x h +-=,代入上式得2231,,22231,,21(,)(,)()()()2!1(,)(,)()()()2!i k i k i k i k i k i k i k i ku uu x t u x t h h o h x xu u u x t u x t h h o h x x +-⎧∂∂=+⋅+⋅+⎪⎪∂∂⎨∂∂⎪=-⋅+⋅+⎪∂∂⎩ (2-8) 得到对位置的二阶偏导数2211,22(,)2(,)(,)()()i k i k i k i k u x t u x t u x t u o h x h+--+∂=+∂ (2-9) 将式(2-5)、(2-9)代入一般形式的抛物线型偏微分方程得21112(,)(,)(,)2(,)(,)(,)()i k i k i k i k i k i k u x t u x t u x t u x t u x t f x t o h h αττ++---+⎡⎤-=++⎢⎥⎣⎦(2-10)为了方便我们可以将式(2-10)写成11122k kk k k k i i i i i i u u u u u f h ατ++-⎡⎤--+-=⎢⎥⎣⎦(2-11) ()11122k k k k k k i i i i i i u u uu u f h τατ++----+= (2-12)最后得到古典显格式的差分格式为()111(12)k k k k k i i i i i u ra u r u u f ατ++-=-+++ (2-13)2r h τ=其中,古典显格式的差分格式的截断误差是2()o h τ+。

电磁场与电磁波实验报告

电磁场与电磁波实验报告

工程电磁场实验报告实验1 :熟悉Matlab、矢量运算要求:学习矢量的定义方法(例A=[1,2,3]),加减运算,以及点积积cross(A,B)、求模运算norm(A)。

1)通过调用函数,完成下面计算【p31,习题1.1】。

给定三个矢量A、B和C如下:求(1)e;(2)|A-B| ;(3)AB ;(4)AB(5)A在B上的投影(6)A C ;(7)A (B C)和C (A B) ;( 8)(A B) C 和A (B C)答案:(1)e A =[0.2673,0.5345,—0.8018]; (2)| A —B|= 7.2801 ; (3)=;(4)% =2.3646(135.4815) ;( 5)-2.6679 ;(6)A C =[-4,-13,-10];(7) A (B C) =C (A B) =-42(8) (A B) C =[2, -40,5] ;A (B C)珂55,-44,-11]程序代码:A=[1,2,-3]B=[0,-4,1]C=[5,0,-2](1) eA=A/norm(A) ( 2)X=norm(A-B)(4) D=acos(dot(A,B)/(norm(A)*norm(B)))(6)G=cross(A,C)(7)I=dot(A,cross(B,C))(8)M=cross(cross(A,B),C) 2、三角形的三个顶点位于A(6,-1,2), B(-2,3,-4), C(-3, 1,5)点,求(1)该三角形的面积;(2)与该三角形所在平面垂直的单位矢量。

(答案S=42.0119, n =[0.2856,0.9283,0.238])程序代码:A=[6,-1,2]B=[-2,3,-4]C=[-3, 1,5]D=acos(dot(A-B,C-A)/( norm(A-B)* norm(B-C)))A = e x 2e y _ 3e zC = 5e x- 2e zdot(A,B)、叉(3)Y=dot(A,B)(5) H=norm(A)*cos(F)K=dot(C,cross(A,B))P=cross(A,cross(B,C))E=norm(A-B)*si n(D)S=norm(B-C)*E/2n=cross(A-B,C-A)/( norm(C-A)* norm(A-B)*(sqrt(1-(dot(C-A,A-B)/( no rm(C-A- A)* norm(A-B))F2)))3、在直角坐标系中,在点P(3,4,2 )处的电场强度为4e x 2e y 3e z。

有限差分法及matlab实现

有限差分法及matlab实现
由于所有的奇次项被抵消,所以方程:
U i1, j , k U i−1, j , k U i , j 1, kU i , j −1, kU i , j , k1 U i , j , k−1 = 6U i , j , k ρ ----- (1) ⋯ ∂ x 2 ∂ x2 6 ∂ x3 ∂ U 1 ∂2 U 1 ∂3 U U i , j 1, k =U i , j ,k ⋯ ∂ y 2 ∂ y2 6 ∂ y3 ∂ U 1 ∂2 U 1 ∂ 3 U U i , j , k1 =U i , j ,k ⋯ ∂ z 2 ∂ z2 6 ∂ z3 ∂ U 1 ∂2 U 1 ∂3 U U i−1, j , k =U i , j , k− − ⋯ ∂ x 2 ∂ x2 6 ∂ x3 ∂ U 1 ∂2 U 1 ∂3 U U i , j 1, k =U i , j , k− − ⋯ ∂ y 2 ∂ y2 6 ∂ y3 ∂ U 1 ∂2 U 1 ∂ 3 U U i , j , k1 =U i , j , k− − ⋯ ∂ z 2 ∂ z2 6 ∂ z3 U i1, j , k =U i , j ,k
= 6U i , j , k ρ
这就是泊松方程的有限差分形式,以下估计该方程的精度: 由泰勒公式,易知有以下结果:
∂U 1 ∂2 U 2 1 ∂3 U 3 h h h ⋯ ∂x 2 ∂ x2 6 ∂ x3 ∂U 1 ∂ 2 U 2 1 ∂3 U 3 U x , y k, z =U x , y , z k k k ⋯ ∂y 2 ∂ y2 6 ∂ y3 2 3 ∂U 1∂ U 2 1∂ U 3 U x , y , z l =U x , y , z l l l ⋯ ∂z 2 ∂ z2 6 ∂ z3 U x h , y , z =U x , y , z

利用MATLAB计算电磁场有关分布概要

利用MATLAB计算电磁场有关分布概要

电磁场实验报告实验一模拟电偶极子的电场和等位线学院:电气工程及其自动化班级:学号:姓名:实验目的: 1、 了解并掌握MATLAB 软件,熟练运用MATLAB 语言进行数值运算 2、 熟练掌握电偶极子所激发出的静电场的基本性质 3、 掌握等位线与电力线的绘制方法实验要求:1、 通过编程,完成练习中的每个问题,熟练掌握 MATLAB 的基本操作2、 请将原程序以及运行结果写成 word 文档以方便检查实验内容: 一、相关概念回顾 对于下图两个点电荷形成的电场其中距离分别为*;(x qx)2(y qy)2, 电场强度与电位的关系是E p 等位线函数为:(x, y, z) C电力线函数为: E x E y dx dy 、实验步骤 1、 打开MATLAB 软件,新建命令文档并保存,并在文档中输入程序。

2、 输入点电荷q1的坐标(qlx ,q1y ),以及q1所带的电量。

调用in put 函数 如果不知道该函数的使用方法可在 MATLAB 命令行处键入doc in put 。

3、 输入点电荷q1的坐标(qlx , q1y ),以及q1所带的电量。

两个电荷共同产生的电位为:q a 几4n0 r i r2.'(x q 2x)2(y q 2y)27q114、定义比例常系数---- 9e9,命令为k=9e9。

4n 05、定义研究的坐标系范围为x 5,5 ,y 5,5,步长值为0.1。

6将x,y两组向量转化为二维坐标的网点结构,函数为meshgrid。

命令为[X,Y]=meshgrid(x,y),如果不知道该函数的使用方法可在MATLAB命令行处键入doc meshgric L7、计算任意一点与点电荷之间的距离r,公式为* (x q/)2(y qy)2,D . (x q2X)2(y q2y)2V —-丄)8、计算由q1,q2两个点电荷共同产生的电势 4 n 0 r-「29、注意,由于在q1和q2位置处计算电势函数为无穷大或者无穷小,因此要把这两点去掉掉,以方便下面绘制等势线。

有限差分法matlab程序一维热传导

有限差分法matlab程序一维热传导

有限差分法matlab程序一维热传导有限差分法是一种常用的数值解法,用于模拟和求解热传导问题。

本文将介绍如何使用MATLAB编写一维热传导的有限差分法程序。

热传导是指在物体内部或跨越物体表面的热量传递过程。

一维热传导是指热量在一个维度上传导,例如在杆状物体中的热传导。

通过有限差分法,我们可以离散化连续问题,将其转化为离散的点上的计算问题。

我们需要定义问题的边界条件和初始条件。

在一维热传导问题中,我们通常需要指定杆的长度、时间步长、温度边界条件和初始温度分布。

假设杆的长度为L,我们将其分割为N个网格点,每个网格点之间的距离为Δx = L/N。

时间步长为Δt。

我们用u(i, j)表示在第i个网格点上的温度值,其中i表示网格点的索引,j表示时间步的索引。

有限差分法的基本思想是使用差分逼近导数,将偏导数转化为有限差分的形式。

在一维热传导问题中,我们可以使用向前差分法或中心差分法来逼近偏导数。

对于一维热传导问题,我们可以使用显式差分格式来求解。

在每个时间步长上,我们可以使用网格点的前一时间步长的温度值来计算当前时间步长的温度值。

具体计算步骤如下:1. 初始化网格点上的温度值,包括初始温度分布和边界条件。

2. 根据初始温度分布和边界条件,计算第一个时间步长上网格点的温度值。

3. 对于每个时间步长j,根据第j-1个时间步长上的温度值,使用差分格式计算第j个时间步长上网格点的温度值。

4. 重复步骤3,直到计算到所需的时间步长。

在MATLAB中,我们可以使用for循环来实现这个计算过程。

首先,我们需要定义模拟所需的参数,如杆的长度、时间步长、温度边界条件和初始温度分布。

然后,我们可以使用嵌套的for循环来计算每个时间步长上的温度值。

我们可以将计算得到的温度值可视化,以便更直观地观察热传导过程。

我们可以使用MATLAB中的plot函数来绘制温度随时间和位置的变化曲线,或使用MATLAB中的surf函数来绘制三维温度分布图。

matlab 有限差分法公式

matlab 有限差分法公式

matlab 有限差分法公式Matlab 有限差分法公式有限差分法(Finite Difference Method)是一种常用的数值计算方法,广泛应用于科学和工程领域中的偏微分方程求解问题。

Matlab是一种强大的数值计算软件,提供了丰富的工具和函数,用于实现有限差分法求解各种偏微分方程。

有限差分法的基本思想是将连续的函数空间离散化为有限的点集,然后利用差分近似来逼近微分方程的导数。

最常用的差分近似形式是中心差分公式,它通过计算函数在某一点及其周围点的差分来近似函数的导数。

中心差分公式的一般形式如下:\[f'(x) \approx \frac{f(x+h) - f(x-h)}{2h}\]其中,\(f'(x)\)表示函数\(f\)在点\(x\)处的导数,\(h\)为步长。

通过适当选择步长,可以提高差分近似的精度。

对于二阶导数的求解,可以使用如下的中心差分公式:\[f''(x) \approx \frac{f(x+h) - 2f(x) + f(x-h)}{h^2}\]有限差分法的核心是将微分方程转化为差分方程,然后利用差分方程的离散解来逼近微分方程的解。

对于一维的偏微分方程,可以将空间离散化为一系列的点,时间离散化为一系列的时间步长,然后利用差分公式逐步迭代求解。

对于二维或三维的偏微分方程,可以将空间离散化为网格,然后利用差分公式在网格上逐步迭代求解。

在Matlab中,可以使用矩阵运算和向量化操作来高效地实现有限差分法。

通过构建差分矩阵和右端项向量,可以将差分方程转化为线性代数方程组,然后利用Matlab提供的线性代数函数来求解方程组。

Matlab还提供了一些专门用于求解偏微分方程的工具箱,如Partial Differential Equation Toolbox,可以进一步简化求解过程。

有限差分法在科学和工程领域中有着广泛的应用。

它可以用于求解热传导方程、扩散方程、波动方程等各种偏微分方程。

工程电磁场实验报告

工程电磁场实验报告

工程电磁场导论实验报告姓名:何探学号:3090731126班级:通信09-1班指导教师:杨光杰肖洪祥实验一 矢量分析一、实验目的1.掌握用matlab 进行矢量运算的方法。

二、基础知识1. 掌握几个基本的矢量运算函数:点积dot(A,B)、叉积cross(A,B)、求模运算norm(A)等。

三、实验内容1. 通过调用函数,完成下面计算给定三个矢量A 、B 和C 如下:23452x y z y zx zA e e eB e eC e e =+-=-+=-求(1)A e ;(2)||A B -;(3)A B ⋅;(4)AB θ ;(5)A 在B 上的投影 ;(6)A C ⨯;(7)()A B C ⋅⨯和()C A B ⋅⨯;(8)()A B C ⨯⨯和()A B C ⨯⨯A=[1,2,-3]; B=[0,-4,1]; C=[5,0,-2]; y1=A/norm(A) y2=norm(A-B) y3=dot(A,B)y4=acos(dot(A,B)/(norm(A)*norm(B))) y5=norm(A)*cos(y4) y6=cross(A,C)y71=dot(A,cross(B,C)) y72=dot(A,cross(B,C)) y81=cross(cross(A,B),C) y82=cross(A,cross(B,C))运行结果为:y1 =0.2673 0.5345 -0.8018 y2 = 7.2801 y3 =-11y4 = 2.3646 y5 =-2.6679y6 = -4 -13 -10 y71 =-42y72 =-42y81 = 2 -40 5 y82 = 55 -44 -11解:(1)[0.2673,0.5345,0.8018]A e =-; (2)||7.2801A B -=; (3)11A B ⋅=-;(4)2.3646(135.4815)AB θ=; (5) 2.6679-;(6)[4,13,10]A C ⨯=---; (7)()()42A B C C A B ⋅⨯=⋅⨯=-;(8)()[2,40,5]A B C ⨯⨯=-;()[55,44,11]A B C ⨯⨯=--;2. 三角形的三个顶点位于A(6,-1,2), B(-2,3,-4), C(-3, 1,5)点,求(1)该三角形的面积;(2)与该三角形所在平面垂直的单位矢量。

计算电磁学实验一-科学计算及有限差分法实验

计算电磁学实验一-科学计算及有限差分法实验

实学算编实验一科学计算编程科学计算编程及及有限差分法实验计算电磁学-有限差分法电子科技大学物理电子学院赖生建cem@编程准备整程序计算路整理程序计算思路分析所需的数据分析所需的计算模块及所需数据 分析模块间的关系编写数据变量编写计算数块)编写计算函数(块)按流程连接各程序块调试cem@编程语言C语言,开发平台Microsoft Visual C++ 6.0F t语言开发平台Vi l F t60Fortran语言,开发平台Visual Fortran 6.0Matlab语言,Matlab6.5前种言科算编言编性言 前两种语言是常用的科学计算编程语言,属于编译性语言,编译后的二进制运行程序计算速度很快,按一般的编程方法,是需要先定义计算所需的各计算变量,是严格数据方法是需要先定义计算所需的各计算变量是严格类型检查性的语言,大型科学计算代码一般采用这两种语言而语言要针对矩阵计算的语言属于解释言。

而MATLAB语言主要针对矩阵计算的语言,属于性的语言,不需要先定义各计算变量,不需要数据类型检查,自动使用、识别数据变量,MATLAB具有丰富的各种科学计算工具箱和易于控制的图形库,广泛应用科学计算科学计算具箱和易于控制的图形库广泛应用科学计算中。

本实验的计算程序采用C语言编写,绘图程序采用MATLAB中的图形函数。

cem@VC6.0启动VC6.0平台C C语言编程实践-启动VC平台VCcem@启动界面VC6.0启动界面VC6.0cem@创建标准C语言程序VC6.0创建标准C语言程序VC6.0cem@在代码编辑区编写C语言程序cem@编译C语言程序cem@VC6.0调试、运行C语言程序VC6.0调试、运行C语言程序cem@平台使用MATLAB平台使用MATLABcem@的程序语言编辑MATLAB的程序语言编辑MATLABcem@科学计算数据的保存编写的计算程序运行后,计算出的数据如何处理?通常把数据保存到文件中,以备使用。

有限差分法

有限差分法

有限差分法一、有限差分法的定义有限差分法(Finite Differential Method )是基于差分原理的一种数值计算法。

其基本思想:将场域离散为许多小网格,应用差分原理,将求解连续函数ϕ的泊松方程的问题转换为求解网格节点上ϕ的差分方程组的问题。

二、有限差分法的应用例3.7.1 有一个无限长直的金属槽,截面为正方形,两侧为正方形,两侧面及底板接地,上盖板与侧面绝缘,其上的电位为ϕ=100V, 试用有限差分法计算槽内电位。

(1)用Matlab 中的有限差分法计算槽内电位;(2)对比解析法和数值法的异同点;(3)选取一点,绘制收敛曲线;(4)总的三维电位图;1、根据有限差分公式计算出电位最终近似值为1,12,13,11,22,23,21,32,33,3=7.144=9.823=7.144=18.751=25.002=18.751=42.857=52.680=42.857ϕϕϕϕϕϕϕϕϕ,,,,,,用Matlab有限差分法计算出来结果:(见附录程序一)2、解析法和数值法的异同点解析法数值法定义在分析具体问题的基础上,抽取出一个数学模型,这个数学模型能用若干个解析表达式表示出来,解决了这些表达式,问题也就得以解决。

数值法是用高性能的计算机以数值的、程序的形式解决问题,主要是指有限元法和差分法相同点都是在具体问题的基础上取一个用解析表达式表示的数学模型来解决问题;数值法是在解析法的基础上在不同尺度上进行有限元离散,离散单元尺度不同,进行有限元计算时要满足的连续性条件不同,预测结果的精确度就不同不同点解析法可以计算出精确的数值结果;可以作为近似解和数值解的检验标准;解析法过程可以观察到问题的内在和各个参数对数值结果起的作用。

但是分析过程困难又复杂使其仅能解决很少量的问题。

数值法求解过程简单,普遍性强,用户拥有的弹性大;用户不必具备高度专业化的理论知识就可以用提供的程序解决问题。

但求解结果没有解析法精确。

电磁场的matlab仿真实验--m语言1

电磁场的matlab仿真实验--m语言1

实验三:等量异号点电荷的电势分布一、实验目的与要求1.掌握命令窗口中直接输入语句,进行编程绘制等量异号点电荷的电势分布图;2.掌握二维网格和三维曲面绘图的语句。

二、实验类型设计三、实验原理及说明这里在命令窗口中直接输入简单的语句进行编程设计。

MATLAB有几千个通用和专用五、实验内容和步骤(一)建立等量异号点电荷的电势方程物理情景是oxy平面上在x=2,y=0处有一正电荷,x= -2,y=0处有一负电荷,根据计算两点电荷电场中电势的分布,由于(二)利用MA TLAB的函数, 绘制等量异号点电荷的电势分布图首先选定一系列的x和y后,组成了平面上的网络点,再计算对应每一点上的z值。

例如-5:0.2:5,-4:0.2:4分别是选取横坐标与纵坐标的一系列数值,meshgrid是生成数据网格的命令,[x,y]是xy平面上的坐标网格点。

z是场点(x ,y)的电势,要求写出z的表达式。

这里用到MA TLAB的函数mesh()描绘3D网格图,meshgrid()描绘在3D图形上加坐标网格,sqrt()求变量的平方根。

mesh()是三维网格作图命令,mesh(x,y,z)画出了每一个格点(x,y)上对应的z值(电势)。

在命令窗口中直接输入简单的语句,如下。

解1解2当场点即在电荷处时,会出现分母为零的情况,因此在r里加了一个小量0.01,这样既可以完成计算,又不会对结果的正确性造成太大影响。

另外需要注意的是表达式中的“./ ”、“.^ ”是对数组运算的算符,含义与数值运算中的“./ ”、“.^ ”相同,不同之处是后者只对单个数值变量进行运算,而前者对整个数组变量中的所有元素同时进行运算。

解2为了减少计算量,增加精确度,与先前的示例相比,计算范围由原先的-5<x<5 ,-4<y<4改为-2<x<2 ,-2<y<2 ;步长由0.5改为0.1,电荷位置也改在(-1,0)和(1,0)处。

matlab在有限差分法数值计算中的应用

matlab在有限差分法数值计算中的应用

matlab在有限差分法数值计算中的应用1.前言有限差分法是一种常用的数值计算方法,常用于求解偏微分方程。

Matlab是一种非常强大的数值计算软件,也被广泛应用于各种科学计算中。

本文将围绕有限差分法在Matlab中的应用进行讨论。

2.有限差分法有限差分法是一种数值计算方法,通常用于求解偏微分方程。

其基本思想是将偏微分方程中的导数用差分的形式进行近似。

这样就可以把偏微分方程转化为差分方程,进而用数值方法求解。

在有限差分法中,将求解区域离散化为网格,并在网格上通过差分近似来求解偏微分方程。

有限差分法的基本思想是将导数转化为差分形式。

由于导数的定义是极限形式的,因此我们可以通过极限的概念来推导差分近似。

例如,对于函数$f(x)$,它在$x=a$处的导数为$f'(a)$,则可以表示为:$$f'(a)=\lim_{h\to0}\frac{f(a+h)-f(a)}{h}$$如果我们取一个无穷小的$h$,则可以得到:$$f'(a)\approx\frac{f(a+h)-f(a)}{h}$$这就是一个一阶中心差分近似。

同样,我们还可以用其他的差分形式来表示导数。

有限差分法的核心就是建立差分方程。

在建立差分方程时,我们需要先将求解区域离散化为网格,然后在每个网格点上建立差分方程。

通常情况下,差分方程和原始的偏微分方程形式相同,只是将偏导数用差分近似来替代。

例如,对于泊松方程:$$\frac{\partial^2\phi}{\partialx^2}+\frac{\partial^2\phi}{\partial y^2}=f(x,y)$$我们可以将其离散化为网格上的差分方程:$$\frac{\phi_{i-1,j}-2\phi_{i,j}+\phi_{i+1,j}}{\Deltax^2}+\frac{\phi_{i,j-1}-2\phi_{i,j}+\phi_{i,j+1}}{\Deltay^2}=f_{i,j}$$其中,$\Delta x$和$\Delta y$表示网格的大小,$\phi_{i,j}$表示在网格点$(x_i,y_j)$处的解,$f_{i,j}$表示在网格点$(x_i,y_j)$处的源项。

基于MATLAB的静态场边值问题有限差分法的研究

基于MATLAB的静态场边值问题有限差分法的研究

第31卷第3期2010年3月微计算机应用M I C ROCO MP UTER APPL I C AT I O NSVol131No13M ar12010基于MATLAB的静态场边值问题有限差分法的研究*王洁陈超波(西安工业大学电子信息工程学院西安710032)摘要:有限差分法是求解静态场边值问题的一个非常有效的数值解法,它是将求解区域划分为有限个网格点,用一组差分方程代替原来一组微分方程。

该方法求得的是近似解而不是精确解。

求解区域内网格划分大小关系着计算的精确度,网格尺寸划分越小,计算精确度越高;反之,精确度越低。

本文运用MATLAB语言使得有限差分法求解区域内电势分布的解法变得简单、易行,摆脱了传统方法使用C语言较复杂的缺陷。

通过仿真验证了算法和程序的有效性。

关键词:静态场边值问题有限差分法M ATLABStudy of F i n ite-D ifference M ethod for the BoundaryV a l ue of Sta tic F iel d Ba sed on M ATLABWANG Ji e,CHEN Chao bo(School of E lectro n ic Informa ti on Engi neering,X i.an Technolo gica lUniversity,X i.an,710032,China)Abstr ac t:The fi n ite-difference m etho d i s one of the m ost po werful nu m er i ca l techn i ques for sol vi ng the bo undary va l ue of static fi e l d1 The fi n ite-difference m ethod bas i ca lly d i vi des the sol uti on do m a i n into so m e fi n ite d i scre te poi nts,and replaces the ori gi na l d ifferentia l equatio ns w ith a set of difference equa tio ns1Of cource,the sol uti on i s not an exact sol u tio n,but an approxi m ate o ne1The m esh size of the d iscretized sol utio n do m a i n is a m easure of t he accracy of t he sol utio n:t he s m a ller the m esh size,t he better t he accuracy;the b i gge r the m esh si ze,t he worse the accuracy1The use of MATL AB fac ilitates t he utilizati on of t he fi n ite-d ifference m ethod to eva l uate the fi e l d d i str i bu tio n,overco m es the de fects of the trad itio na lm ethod for using C language1The si m u l a ti on exa m ples sho w t hat t he algor it h m and procedures a re correct and effecti veK eywords:t he bounda ry va l ue of static fie l d,fi nite-d ifference m e t hod,MATL AB1引言电磁场学科随着计算机技术、计算方法、实验研究技术的迅速发展和工业需求的日益增加,其研究开发及工业应用逐步深化。

基于MATLAB的静态场边值问题有限差分法的研究

基于MATLAB的静态场边值问题有限差分法的研究

基于MATLAB的静态场边值问题有限差分法的研究
基于MATLAB的静态场边值问题有限差分法的研究
王洁;陈超波
【期刊名称】《网络新媒体技术》
【年(卷),期】2010(031)003
【摘要】有限差分法是求解静态场边值问题的一个非常有效的数值解法,它是将求解区域划分为有限个网格点,用一组差分方程代替原来一组微分方程.该方法求得的是近似解而不是精确解.求解区域内网格划分大小关系着计算的精确度,网格尺寸划分越小,计算精确度越高;反之,精确度越低.本文运用MATLAB语言使得有限差分法求解区域内电势分布的解法变得简单、易行,摆脱了传统方法使用C语言较复杂的缺陷.通过仿真验证了算法和程序的有效性.
【总页数】5页(1-5)
【关键词】静态场边值问题;有限差分法;MATLAB
【作者】王洁;陈超波
【作者单位】西安工业大学,电子信息工程学院,西安,710032;西安工业大学,电子信息工程学院,西安,710032
【正文语种】中文
【中图分类】
【相关文献】
1.静电场边值问题有限差分法的仿真分析 [J], 霍文晓
2.有限差分法在静态电磁场计算中的应用 [J], 余定峰; 李超
3.放射性气体扩散方程有限差分法的MATLAB实现[J], 龙亮; 张振华; 姜林; 周科廷; 莫懿新。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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次。

发现迭代次数明显减少了。

相关文档
最新文档