讲稿版利用Matlab模拟点电荷电场的分布(共9页)_第1页
讲稿版利用Matlab模拟点电荷电场的分布(共9页)_第2页
讲稿版利用Matlab模拟点电荷电场的分布(共9页)_第3页
讲稿版利用Matlab模拟点电荷电场的分布(共9页)_第4页
讲稿版利用Matlab模拟点电荷电场的分布(共9页)_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上利用MATLAB模拟点电荷电势的分布一、 目的1.熟悉单个点电荷及一对点电荷的电势分布情况;2.学会使用MATLAB进行数值计算,并绘出相应的图形;二、原理根据库仑定律:在真空中,两个静止点电荷之间的作用力与这两个电荷的电量乘积成正比,与它们之间距离的平方成反比,作用力的方向在两个电荷的连线上,两电荷同号为斥力,异号为吸引力,它们之间的力满足:(式1)由电场强度的定义可知:(式2)对于点电荷,根据场论基础中的定义,有势场的势函数为(式3)在MATLAB中,由以上公式算出各点的电势,可以用MATLAB自带的库函数绘出相应的电势分布情况。三、MATLAB基本语法 (一)标

2、识符与数标识符是标志变量名、常量名、函数名和文件名的字符串的总称。(二)矩阵及其元素的赋值赋值就是把数赋予代表常量或变量的标识符。MATLAB中的变量或常量都代表矩阵,标量应看作1×1价的矩阵。赋值语句的一般形式为变量=表达式(或数)列如,输入语句a=1 2 3;4 5 6;7 8 9则显示结果为a=1 2 3 4 5 6 7 8 9输入 x=1 2 3 4 5 6 7 8 9结果为x= 1 2 3 4 5 6 7 8 9可以看出,矩阵的值放在方括号中,同一行中各元素之间以逗号或空格分开,不同行的元素以分号隔开。语句的结尾可用回车或逗号“,”,此时会立即显示运算结果;如果不希望显示结

3、果,就以分号“;”结尾再回车,此时运算仍然执行,只是不作显示。变量的元素用圆括号“()”中的数字(也称为下标)来注明,一维矩阵(也称数组)中的元素用一个下标表示,二维矩阵可有两个下标数,以逗号分开。在MATLAB中可以单独给元素赋值,例如,a(2,3)=6,x(2)=2等。(三)元素群运算把n×m矩阵中的每个元素当作对象,成群地执行某种运算,称为元素群运算。元素群运算能大大简化编程,提高运算的效率,这是MATLAB优于其它许多语言的一个特色。1、数组及其赋值数组通常是指单行或单列的矩阵,一个N阶数组就是1×N或N×1阶矩阵。N阶数组可以表示N维向量。在求某些函数值

4、或曲线时,常常要设定自变量的一系列值,例如,设间隔n在x轴上从-3到3之间,每隔1取一个点,共7个点,这是1×7阶的数组。如果逐点给它赋值,将非常麻烦。MATLAB提供了两种给等间隔数组赋值的简易方法。(1)用两个冒号组成等增量语句,其格式为x=初值:增量:终值。例如,键入x=-3:1:3得x=-3 -2 -1 0 1 2 3 当然增量为1时,这个增量值是可以略去的。(2)linspace函数表述等距离分割,其格式为x=linspace(初值,终值,点数)。例如键入x=linspace(-3,3,7)得x=-3 -2 -1 0 1 2 3 在x轴上-3和3实际上是一个点,所以这个命令

5、是把x轴分为7份。第三个变元也可以不写,此时取默认值100.2、元素群的四则运算和幂次运算元素群运算也就是单个元素之间的运算。为了与矩阵作为整体的运算符号相区别,要在运算符“*”、“/”、“”、“”前加一个点符号“.”,以表示进行元素群运算。矩阵的加减法本来就是对元素进行的,故不再有元素群运算符。参与元素群运算的两个矩阵必须是同价的(标量除外)。下列的例子可以说明利用元素群运算的优越性。例如,要求列出一个三角函数表。这在MATLAB中只要一下两个语句键入 x=0:0.1:pi/4;x, sin(x), cos(x), tan(x)第一条语句把数组x赋值,经转置后成为一个列向量。因为sin, c

6、os,tan函数都对元素群有效,得出的都是同阶的列向量。第二条语句把4个列向量组成一个矩阵,进行显示。得 0 0 1.0000 0 0.1000 0.0998 0.9950 0.1003 0.2000 0.1987 0.9801 0.2027 0.3000 0.2955 0.9553 0.3093 0.4000 0.3894 0.9211 0.4228 0.5000 0.4794 0.8776 0.5463 0.6000 0.5646 0.8253 0.6841 0.7000 0.6442 0.7648 0.8432第一列是x,以下各列依次是sin(x), cos(x), tan(x)。for

7、语句for语句的结构形式为for k=初值:增量:终值 语句组A,end即它把语句组A反复执行N次。在每次执行时程序中k值不同。可以算出循环次数为N=1+(终值初值)/增量用for 语句求三角函数表的程序为for x=0:0.1:pi/4disp(x, sin(x), cos(x), tan(x);end所得结果将和上个例题中的答案相同。可以看出,MATLAB的元素群运算功能与一个for循环相当,由于它不需要每次检验表达式,运算速度比for语句快得多。for 语句可以嵌套使用。四、MATLAB现用函数介绍MATLAB语言的难点是函数较多,仅基本部分就有700多个,其中常用的近200个,要尽量多

8、记少查,以提高编程效率,而且这是终生受益的。1、线型分隔函数linspace(-xm,xm,n):在-xm与xm之间均分地产生n个点值,形成1×n元向量。其中-xm是初值,xm是终值,n是点数。2、两个变量的标量指令 X,Y=meshgrid(x,y):将向量x,y变换为数组X,Y,这样就可以将两个一维向量生成两个二维矩阵。其中,数组X的各行是向量x的拷贝,总行数为y向量的元素个数;数组Y的各列是向量y的拷贝,总列数为x向量的元素个数。例如x=-3:3; y=1:5; X,Y=meshgrid(x,y) X=-3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 -3 -

9、2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 Y= 1 1 1 1 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3 3 3 4 4 4 4 4 4 4 5 5 5 5 5 5 5Z=(X+Y).2 Z= 4 1 0 1 4 9 16 1 0 1 4 9 16 25 0 1 4 9 16 25 36 1 4 9 16 25 36 49 4 9 16 25 36 49 643、二维空间中绘制等高线函数 contour(X,Y,U,u):就是挑选出电势相等的点,并在向量u指定的值上绘制等高线。注意u取值要恰当。四、编程1.画单个点电荷的平面

10、电场线与等势线clear %清除变量E0=8.85e-12; %真空电介质常数C0=1/4/pi/E0; %归并常数q=1.6*10(-19); %元电荷电量xm=2.5; %横坐标范围ym=2; %纵坐标范围x=linspace(-xm,xm); %横坐标向量y=linspace(-ym,ym); %纵坐标向量X,Y=meshgrid(x,y); %设置坐标网点R=sqrt(X.2+Y.2); %点电荷到场点的距离U=C0*q./R; %计算电势u=1e-9:0.5e-9:5e-9; %等电势的电势向量figure %创建图形窗口contour(X,Y,U,u) %画等高线hold on %

11、保持图形plot(0,0,'o','markersize',12) %画点电荷axis equal tight %使坐标刻度相等title('单个点电荷的平面电场线与等势线','fontsize',20) %显示标题xlabel('r','fontsize',16) %显示横坐标ylabel('E(U)','fontsize',16) %显示纵坐标2.画一对点电荷对的电场线和等势线clear %清除变量E0=8.85e-12; %真空电介质常数C0=1/4/pi/E0

12、; %归并常数q=1.6*10(-19); %元电荷电量a=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=C0*q./R1+C0*q./R2; %计算电势u=1e-9:0.5e-9:5e-9; %等电势的电势向量figure %创建图形窗口contour(X,Y,U,u) 画等势线g

13、rid on %加网格legend(num2str(u') %图例hold on %保持图像plot(-1,0,'o','markersize',12) %画第一个正电荷plot(1,0,'o','markersize',12) %画第二个正电荷axis equal tight %使坐标刻度相等title('等量同号点电荷的电场线和等势线','fontsize',20) %显示标题xlabel('r','fontsize',16) %显示横坐标ylabel(&

14、#39;E(U)','fontsize',16) %显示纵坐标txt='µçºÉ±È:itQrm_2/itQrm_1=' num2str(a); %电荷比文本text(-xm,-ym-0.3,txt,'fontsize',16) %显示电荷比下列的例子可以说明利用元素群运算的优越性。例如,要求列出一个三角函数表。这在MATLAB中只要一下两个语句键入 x=0:0.1:pi/4;x, sin(x), cos(x), tan(x)第一条语句把数组x赋值,经转置后成为一个列向量。因为s

15、in, cos,tan函数都对元素群有效,得出的都是同阶的列向量。第二条语句把4个列向量组成一个矩阵,进行显示。得 0 0 1.0000 0 0.1000 0.0998 0.9950 0.1003 0.2000 0.1987 0.9801 0.2027 0.3000 0.2955 0.9553 0.3093 0.4000 0.3894 0.9211 0.4228 0.5000 0.4794 0.8776 0.5463 0.6000 0.5646 0.8253 0.6841 0.7000 0.6442 0.7648 0.8432第一列是x,以下各列依次是sin(x), cos(x), tan(x)。for语句for语句的结构形式

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论