电磁场的Matlab仿真
华科电磁场matlab仿真作业

电磁场作业电气1202 XXX U201200000一.作业一1.程序框图2.程序clear;col = 61; %第一行点数row = col; %行数span = 0.3/(col-1); %步长End = ones(1,col)*col; %每一行的终止点Start = ones(1,col); %每一行的起始点A = zeros(row,col); %A矩正存储每点电势for i = (col-1)/3+1:(col-1)*2/3+1for j = (col-1)/3+1:(col-1)*2/3+1A(i,j) =100;endend %初始化电势完毕temp = A;for n= 1:500 %迭代次数for i = 2:row-1if ( i<((col-1)/3+1)||i>( (col-1)*2/3+1 ) )for j = Start(i)+1:End(i)-1temp(i,j)=(A(i-1,j) +A(i+1,j) +A(i,j-1) +A(i,j+1))/4;endelsefor j = 2:(col-1)/3temp(i,j)=(A(i-1,j) +A(i+1,j) +A(i,j-1) +A(i,j+1))/4;endfor j = 2*(col-1)/3+2:col-1temp(i,j)=(A(i-1,j) +A(i+1,j) +A(i,j-1) +A(i,j+1))/4;endendA = temp;endendX = row:-1:1;Y = col:-1:1;[X,Y] = meshgrid(X,Y);figure(1);surf(rot90(A,2));figure(2);contour(rot90(A,2));hold on;[Gx,Gy] = gradient(A,1,1);quiver(Gx,Gy);3.计算机绘图二.作业二1.程序框图2.程序100V0Vclear;col=101;row=101;A=zeros(row,col);for i=11:101A(i,11)=100;endfor j=11:101A(11,j)=100;endfor i=2:10A(i,col)=10*i-10;endfor j=2:10A(row,j)=10*j-10;endA1=A;x=1;t=0;while x>0.1x=0;for i=2:100for j=2:100if (i>1&&i<11)||(j>1&&j<11)A1(i,j)=(A(i,j-1)+A(i,j+1)+A(i-1,j)+A(i+1,j))/4;t=abs(A(i,j)-A1(i,j));if (t>x)x=t;endendendendA=A1;endX = 1:1:row;Y = 1:1:col;[X,Y] = meshgrid(X,Y);figure(1);surf(rot90(A,4));figure(2);contour(rot90(A,4));hold on;[Gx,Gy] = gradient(A,1,1);quiver(Gx,Gy);3.计算机绘图三.作业三1.程序框图2.程序clear;N = 41; %第一行点数h = 0.2/(N-1); %步长row = (N+1)/2; %行数E = N:-1:N-row+1;%每一行的终止点S = 1:1:N-row+1;%每一行的起始点A = zeros(row,N); %A矩阵存储每点电势A(1,:)=ones(1,E(1))*100; %初始化电势for i = 1:rowA(i,S(i)) = 0;A(i,E(i)) = 0;end %初始化电势完毕temp = A;for n= 1:600 %迭代次数for i = 2:rowfor j = S(i):E(i)if j ==S(i) || j==E(i)temp(i,j)=0;elsetemp(i,j)=(3*A(i-1,j) +3*A(i+1,j) +A(i,j-1) +A(i,j+1))/8;endendendA = temp;endX = row:-1:1;Y = N:-1:1;[X,Y] = meshgrid(X,Y);figure(1);surf(rot90(A,2));figure(2);contour(rot90(A,2));3.计算机绘图。
带电粒子在电磁场中运动的MATLAB仿真 (1)

目录第一章概述 (1)第二章基本原理 (2)2.1 带电粒子在电磁场中运动的原理 (2)2.2质量较大的带电微粒在复合场中的运动 (2)第三章算法及仿真结果 (4)3.1具体算法 (4)3.2结果 (5)第四章结论 (7)参考文献 (8)附录 (9)第一章概述MATLAB(矩阵实验室)是MATrix LABoratory的缩写,是一款由美国The MathWorks公司出品的商业数学软件。
MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C,C++和FORTRAN)编写的程序。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB具有其他高级语言难以比拟的一些优点,如编写简单、编程效率高、易学易懂等,因此MATLAB 语言也被通俗地称为演算纸式科学算法语言。
MATLAB是当今最优秀的科技应用软件之一,它以强大的科学计算与可视化功能、简单易用、开放式可扩展环境,特别是所附带的30 多种面向不同领域的工具箱支持,使得它在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台。
而其强大的图像绘制功能也使得它广泛用于各种数据背后现象的模拟仿真。
计算机数值模拟的研究方法已成为继实验研究和理论分析之外的第三种研究手段,在基础物理学习中适当引入计算机数值方法,有助于将一些高深的物理知识深入浅出、生动形象地学习。
随着计算机的普及,MATLAB在基础物理中的应用日益广泛。
在控制、通信、信号处理及科学计算等领域中,MATLAB 都被广泛地应用,已经被认为能够有效提高工作效率、改善设计手段的工具软件。
第二章 基本原理2.1带电粒子在电磁场中运动的原理带电粒子在磁场中运动时会受到洛伦兹力的作用,且随着初始运动方向和磁场分布的不同,其运动轨迹会发生不同的变化。
matlab模拟的电磁学数值技术代码

一、概述电磁学作为物理学的一个重要分支,其研究对象涉及电场、磁场和电磁波等内容。
在现代科学技术的发展中,电磁学的应用范围愈发广泛,然而电磁学问题的解决往往需要大量的数值计算和模拟。
其中,利用Matlab等软件进行电磁学数值模拟已经成为一种常见的技术手段。
本文将从电磁学数值模拟的原理、技术和代码编写等方面展开探讨。
二、电磁学数值模拟的原理电磁学数值模拟是利用计算机对电磁学问题进行模拟和计算。
其原理是基于Maxwell方程组进行离散化处理,将连续性的数学模型转化为适合计算机处理的离散模型,然后通过数值算法求解相关方程,得到电磁场的分布情况。
常见的数值算法包括有限差分法、有限元法、边界元法等。
这些数值算法的选择和设计对于模拟结果的精确性和计算效率具有重要影响。
三、电磁学数值模拟的技术1. 有限差分法有限差分法是一种常见的电磁学数值模拟技术,其基本思想是将空间连续的电磁场分布离散化为有限个点,并通过有限差分近似求解Maxwell方程组。
有限差分法主要包括差分格式的选取、边界条件的处理和数值稳定性的分析等内容。
在Matlab中,可以通过编写相应的有限差分法程序来实现电磁场模拟。
2. 有限元法有限元法是另一种常用的数值模拟技术,其基本思想是将连续的电磁场分布离散化为有限个基函数的线性组合,并通过有限元插值和数值积分求解Maxwell方程组。
有限元法适用于比较复杂的几何结构和边界条件,能够精确地描述电磁场在非均匀介质中的分布情况。
3. 边界元法边界元法是一种基于格林函数的数值模拟技术,其基本思想是将电磁问题转化为边界积分方程,并利用格林函数求解边界上的电磁场分布。
边界元法对于处理边界条件和界面问题有独特优势,能够有效地模拟电磁场在复杂边界下的分布情况。
四、Matlab模拟的电磁学数值技术代码编写1. 有限差分法的Matlab编写在使用Matlab进行有限差分法的电磁学数值模拟时,首先需要确定问题的空间离散化和时间离散化等参数,然后编写相应的差分格式和边界条件处理程序。
电磁场matlab仿真实验

电磁场matlab 仿真实验一实验一:[例7-5]试分析一对等量异号的电荷周围空间上的电位和电场分布情况。
分析:将等量异号的电荷的几何中心放置于坐标原点位置,则它们在空间某点p 处产生的点位为:()G q g g q r r q r q r q02102102010*******πξπξπξπξπξϕ=-=⎪⎪⎭⎫ ⎝⎛-=-= 其中G 为格林函数 ()()22222cos 2/cos 2/1r dr d r r dr d r +-=+-=θθ 将G 用片面积坐标表示为⎪⎪⎭⎫ ⎝⎛=12ln g g G 在编程时,将G 当作点位函数处理,并利用梯度求出唱腔E=-▽φ。
用matlab 的m 语言编写的程序如下:[x,y]=meshgrid(-10:0.1:10);[Q,R]=cart2pol(x,y);R(R<=1)=NaN;q=input('请输入电偶极子的电量q =') %原程序有误,以此为准d=input('请输入电偶极子的间距d =') %原程序有误,以此为准E0=8.85*1e-12;K0=q/4/pi/E0;g1=sqrt((d./2).^2-d.*R.*cos(Q)+R.^2); %原程序有误,以此为准g2=sqrt((d./2).^2+d.*R.*cos(Q)+R.^2); %原程序有误,以此为准G=log(K0*g2./g1);contour(x,y,G,17,'g');hold on[ex,ey]=gradient(-G);tt=0:pi/10:2*pi; %原程序未定义tt ,以此为准sx=5*sin(tt);sy=5*cos(tt);streamline(x,y,ex,ey,sx,sy);xlabel('x');ylabel('y');hold off;当运行此程序后,按提示输入电偶极子电量和嗲耨集子间距如下:请输入电偶极子的电量q =0.5*1e-10请输入电偶极子的间距d =0.01即可汇出入图说使得嗲耨集资周围的长的分布图。
应用MATLAB设计电磁场与电磁波模拟仿真实验

应用MATLAB设计电磁场与电磁波模拟仿真实验在当今科技飞速发展的时代,电磁场与电磁波在通信、电子工程、无线电技术等众多领域中发挥着至关重要的作用。
为了更深入地理解和研究电磁场与电磁波的特性和行为,借助先进的工具进行模拟仿真是一种极为有效的方法。
其中,MATLAB 凭借其强大的数学计算和图形处理能力,成为了设计电磁场与电磁波模拟仿真实验的理想选择。
一、MATLAB 简介MATLAB 是一种广泛应用于科学计算、数据分析和可视化的高级编程语言和交互式环境。
它提供了丰富的函数库和工具箱,使得用户能够轻松地进行数值计算、矩阵运算、信号处理、图像处理等各种复杂的任务。
对于电磁场与电磁波的研究,MATLAB 中的数值计算和绘图功能尤为重要。
二、电磁场与电磁波基础在开始设计模拟仿真实验之前,我们需要先了解一些电磁场与电磁波的基本概念和理论。
电磁场是由电荷和电流产生的物理场,包括电场和磁场。
电磁波则是电磁场的一种运动形式,它以光速在空间中传播,具有电场分量和磁场分量,并且两者相互垂直。
电磁波的特性可以用频率、波长、波速、振幅等参数来描述。
不同频率的电磁波在传播过程中会表现出不同的特性,例如在介质中的折射、反射、吸收等。
三、设计思路在利用 MATLAB 进行电磁场与电磁波模拟仿真实验时,我们的设计思路通常包括以下几个步骤:1、问题定义:明确要研究的电磁场与电磁波现象,例如电磁波在自由空间中的传播、在介质中的折射和反射等。
2、数学模型建立:根据电磁学理论,建立描述该现象的数学方程。
这可能涉及到麦克斯韦方程组的应用以及边界条件的设定。
3、数值求解:使用 MATLAB 提供的数值计算方法,如有限差分法、有限元法等,对数学方程进行求解,得到电磁场的数值解。
4、结果可视化:将求解得到的数值结果通过图形的方式展示出来,以便直观地观察和分析电磁场与电磁波的特性。
四、具体实验案例下面我们通过一个简单的例子来展示如何使用 MATLAB 设计电磁场与电磁波的模拟仿真实验。
电磁场中matlab仿真实现工具箱

实验六:使用偏微分方程工具箱对电磁场的仿真一、实验目的与要求1.掌握微分方程工具箱的使用方法;2.掌握使用偏微分方程工具箱分析电磁场。
二、实验类型设计三、实验原理及说明偏微分方程的工具箱(PDE toolbox)是求解二维偏微分方程的工具,MA TLAB专门设计了一个应用偏微分方程的工具箱的演示程序以帮助使用者快速地了解偏微分方程的工具箱的基本功能。
操作方法是在MA TLAB的指令窗口键入pdedemos,打开Command Line Demos窗口,如图所示。
只要单击任意键就会使程序继续运行,直至程序运行结束。
单击信息提示按钮(Info)是有关演示窗口的帮助说明信息。
8个偏微分方程的演示程序分别是泊松方程、亥姆霍兹方程、最小表面问题、区域分解方法、热传导方程、波动方程、椭圆型方程自适应解法和泊松方程快速解法。
(一)偏微分方程的工具箱的基本功能偏微分方程的工具箱可以求解一般常见的二维的偏微分方程,其基本功能是指它能解的偏微分方程的类型和边值条件。
用户可以不必学习编程方法仅仅在图形用户界面窗口进行操作,就能得到偏微分方程的数值解。
1.工具箱可解方程的类型定义在二维有界区域Ω上的下列形式的偏微分方程,可以用偏微分方程工具箱求解:椭圆型()f au u c =+∇∙∇- 抛物型()f au u c tu d =+∇∙∇-∂∂ 双曲型()f au u c tu d =+∇∙∇-∂∂22 本征值方程()du au u c λ=+∇∙∇-式中,u 是偏微分方程的解;c 、a 、d 、f 是标量复函数形式的系数,在抛物型和双曲型方程中,它们也可以是t 的函数,λ是待求的本征值。
当c 、a 、f 是u 的函数时,称之为非线性方程,形式为()()()()u f u u a u u c =+∇∙∇-也可以用偏微分方程工具箱求解。
2.工具箱可解方程的边值条件解偏微分方程需要的边值条件一般为下面两种之一:狄里赫利(Diriclet)边值条件 hu=r广义诺曼(Generalized Neumann)边值条件 ()g qu u c n =+∇∙式中,n为边界外法向单位向量;h 、q 、r 、g 是在边界上定义的复函数。
MATLAB实验电磁实验仿真

实验四 电磁实验仿真 —点电荷电场分布的模拟一. 实验目的电磁场是一种看不见摸不着但又客观存在的物质,通过使用Matlab 仿真电磁场的空间分布可以帮助我们建立场的图景,加深对电磁理论的理解和掌握。
按照矢量分析,一个矢量场的空间分布可由其矢量线(也称力线)来形象表示。
点电荷的电场就是一个矢量场,模拟其电力线的分布可以得到电场的空间分布。
通过本次上机实验希望达到以下目的:1. 学会使用MATLAB 绘制电磁场力线图和矢量图的方法;2. 熟悉二维绘图函数contour 、quiver 的使用方法。
二. 实验原理根据库仑定律,真空中的一个点电荷q 激发的电场3r E q r=v v (高斯制) (1) 其中r 是观察点相对电荷的位置矢量。
考虑相距为d 的两个点电荷q 1和q 2,以它们的中点建立坐标(如图),根据叠加原理,q 1和q 2激发的电场为:12123312r r E q q r r =+v v v (2) 由于对称性,所有包含电荷的平面上,电场的分布一样,所以只需要考虑xy 平面上的电场分布,故121233331212(/2)(/2)ˆˆˆˆ()[]x y E E q x q x q y d q y d E j j r r r r i i -+==++++v (3)其中12 r r ==。
根据电动力学知识(参见谢处方,《电磁场与电磁波》,1.4.1节),电场矢量线(或电力线)满足微分方程: yx E dydx E = (4) 代入(3)式解得电力线满足的方程 1212(/2)(/2)q y d q y d r r C -++= (5) 其中C 是积分常数。
每一个C 值对应一根电力线。
电场的分布也可以由电势U 的梯度(gradient ,为矢量)的负值计算,根据电磁学知识,易知两点电荷q 1和q 2的电势1212q q U r r =+(6)那么电场为 E gradU U =-=-∇v (7)或者 ()(),x y x y E U E U =-∇=-∇ (8)在Matlab 中,提供了计算梯度的函数gradient()。
matlab电磁场仿真作业

matlab电磁场仿真作业一、介绍本文将介绍matlab电磁场仿真作业的相关知识和技巧。
电磁场仿真是指利用计算机模拟电磁场的分布和变化规律,以实现对电磁场问题的分析和解决。
matlab是一种强大的数学软件,可以用于各种科学计算、数据分析和图形处理等工作。
在电磁场仿真中,matlab具有良好的适用性和灵活性,可以方便地进行数据处理、可视化和模拟等操作。
二、基本概念1. 电磁场电磁场是指由带电粒子或导体所产生的物理现象,包括静电场、磁场和电磁波等。
在空间中,任何带有电荷或运动电荷的物体都会产生相应的电磁场。
2. 仿真仿真是指利用计算机模拟某个系统或过程的行为方式和结果。
在电磁场仿真中,可以通过建立数学模型来描述物理系统,并利用计算机进行计算和可视化。
3. 离散化离散化是指将连续变量转换为离散变量的过程。
在matlab中进行离散化操作可以将连续的电磁场分布转换为离散的数据点,以便进行计算和可视化。
三、matlab电磁场仿真的步骤1. 建立模型在进行电磁场仿真前,需要建立合适的模型来描述物理系统。
模型应该包括几何形状、物理特性和边界条件等信息。
可以使用matlab中的几何建模工具来创建三维模型,并定义相应的物理参数。
2. 离散化将连续的电磁场分布离散化为数据点。
可以使用matlab中的网格生成工具来生成离散化网格,并对网格进行调整以满足精度和计算效率要求。
3. 求解方程根据物理特性和边界条件,建立相应的方程组并求解。
常用的求解方法包括有限元法、有限差分法和边界元法等。
在matlab中,可以利用数值计算工具箱提供的函数来求解方程组。
4. 可视化将结果可视化以便于分析和展示。
可以使用matlab中强大的图形处理工具来生成二维或三维图像,并添加必要的标注和注释。
四、实例演示以下是一个简单的电磁场仿真实例,演示了如何在matlab中进行电磁场仿真。
1. 建立模型假设有一个长方体导体,其底面和侧面都被接地,导体顶部施加了一个电势差为V的电源。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab 与电磁场模拟
一 单电荷的场分布:
单电荷的外部电位计算公式:
等位线就是连接距离电荷等距离的点,在图上表示就是一圈一圈的圆,而电力线就是由点向
外辐射的线。
MATLAB 程序:
theta=[0:.01:2*pi]'; r=0:10; x=sin(theta)*r; y=cos(theta)*r; plot(x,y,'b')
x=linspace(-5,5,100); for theta=[-pi/4 0 pi/4] y=x*tan(theta); hold on ; plot(x,y); end grid on
单电荷的等位线和电力线分布图:
r q
04πεφ=
二多个点电荷的电场情况:
模拟一对同号点电荷的静电场
设有两个同号点电荷,其带电量分别为+Q1和+Q2(Q1、Q2>0 )距离为2a则两电荷在点P(x, y)处产生的电势为:
由电场强度可得E = -∇U,在xOy平面上,电场强度的公式为:
为了简单起见,对电势U做如下变换:。
Matlab程序:
q=1;
xm=2.5;
ym=2;
x=linspace(-xm,xm); y=linspace(-ym,ym); [X,Y]=meshgrid(x,y); R1=sqrt((X+1).^2+Y.^2); R2=sqrt((X-1).^2+Y.^2); U=1./R1+q./R2; u=1:0.5:4; figure
contour(X,Y,U,u) grid on
legend(num2str(u')) hold on
plot([-xm;xm],[0;0]) plot([0;0],[-ym;ym])
plot(-1,0,'o','MarkerSize',12) plot(1,0,'o','MarkerSize',12) [DX,DY] = gradient(U); quiver(X,Y,-DX,-DY); surf(X,Y,U);
同号电荷的静电场图像为:
-2
010
20
30
40
50
同理,将程序稍作修改,便可以得到异号电荷的静电场图像:
-2.5
-40-30-20-10010203040
三、线电荷产生的电位:
设电荷均匀分布在从z=-L 到z=L,通过原点的线段上,其密度为q(单位C/m),求在xy 平面上的电位分布。
点电荷产生的电位可表示为 是一个标量。
其中r 为电荷到测量点的距离。
线电荷所产生的电位可用积分或叠加的方法来求。
为此把线电荷分为N 段,每段长为dL 。
每段上电荷为q*dL,看作集中在中点的点电荷,它产生的电位为 然后对全部电荷求和即可。
把xy 平面分成网格,因为xy 平面上的电位仅取决于离原点的垂直距离R ,所以可以省略一维,只取R 为自变量。
把R 从0到10米分成Nr+1点,对每一点计算其电位。
Matlab 程序: clear all;
L=input(‘线电荷长度L = ’); N=input(‘分段数N = ’); Nr=input(‘分段数Nr = ’); q=input(‘电荷密度q= ’);
0/4V Q r πε=
E0=8.85e-12;
C0=1/4/pi/E0;
L0=linspace(-L,L,N+1);
L1=L0(1:N);L2=L0(2:N+1); Lm=(L1+L2)/2;dL=2*L/N; R=linspace(0,10,Nr+1); for k=1:Nr+1
Rk=sqrt(Lm.^2+R(k)^2);
Vk=C0*dL*q./Rk;
V(k)=sum(Vk);
end
[max(V),min(V)]
plot(R,V),grid
线电荷产生的静电位分布图:
四计算平面上N个电荷之间的库伦引力
1 建模:
由库仑定律:
先输入电荷的数目,各电荷的坐标及电荷量,再选一个电荷,求其它电荷对它的作用力,叠加求合力。
再选下一个电荷,依次类推。
Matlab程序:
clear all;
N = input('ÊäÈëµçºÉÊýÄ¿N=:');
for ic = 1:N
fprintf('----/n¸öµçºÉ#%g\n',ic);
rc = input('ÊäÈëµçºÉλÖÃ[x,y]£¨Ã×£©:');
x(ic) = rc(1);
y(ic) = rc(2);
q(ic) = input('ÊäÈëµçºÉÁ¿£¨¿âÂØ£©£º');
end
E0 = 8.85e-12;
C0 = 1/(4*pi*E0);
for ic = 1:N
Fx = 0.0;Fy = 0.0;
for jc = 1:N
if(ic ~= jc)
xij = x(ic)-x(jc);yij = y(ic)-y(jc);
Rij = sqrt(xij^2+yij^2);
Fx=Fx+C0*q(ic)*q(jc)*xij/Rij^3;
Fy=Fy+C0*q(ic)*q(jc)*yij/Rij^3;
end
end
fprintf('ÆäËüµçºÉ×÷ÓÃÔÚµçºÉ#%gÉϵĺÏÁ¦Îª£º\n',ic);
fprintf('x-·ÖÁ¿:%e\n',Fx);
fprintf('y-·ÖÁ¿:%e\n',Fy);
end
五有限差分法处理电磁场问题Matlab程序:
m=40
for k=1:m
for j=1:m
if k==1
V(j,k)=1;
elseif((j==1)|(j==m)|(k==m))
V(j,k)=0;
else
V(j,k)=0.5;
end
end
end
cha=0.01;
delta=0;
n=0;
while(1)
n=n+1;
for k=2:m-1
for j=2:m-1
Vnew(j,k)=1/4*(V(j+1,k)+V(j-1,k)+V(j,k+1)+V(j,k-1)); d=abs((Vnew(j,k)-V(j,k))/V(j,k));
if d>delta
delta=d;
end
V(j,k)=Vnew(j,k);
end
end
if delta>cha
break;
end
if(n>100)
break;
end
delta=0.;
end
结果为:。