利用Matlab模拟点电荷电场的分布

上传人:工**** 文档编号:507378266 上传时间:2024-03-05 格式:DOCX 页数:12 大小:148.29KB
返回 下载 相关 举报
利用Matlab模拟点电荷电场的分布_第1页
第1页 / 共12页
利用Matlab模拟点电荷电场的分布_第2页
第2页 / 共12页
利用Matlab模拟点电荷电场的分布_第3页
第3页 / 共12页
利用Matlab模拟点电荷电场的分布_第4页
第4页 / 共12页
利用Matlab模拟点电荷电场的分布_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《利用Matlab模拟点电荷电场的分布》由会员分享,可在线阅读,更多相关《利用Matlab模拟点电荷电场的分布(12页珍藏版)》请在金锄头文库上搜索。

1、利用MATLAB模拟点电荷电势的分布一、原理根据库仑定律:在真空中,两个静止点电荷之间的作用力与这两个电荷的电量乘 积成正比,与它们之间距离的平方成反比,作用力的方向在两个电荷的连线上,两电荷同号为斥力,异号为吸引力,它们之间的力F满足:F = kQiQ2R (式1)R2由电场强度E的定义可知:E = kQR (式2)R 2对于点电荷,根据场论基础中的定义,有势场E的势函数为U = kQ (式3)R在MATLAB中,由以上公式算出各点的电势U,可以用MATLAB自带的库函 数绘出相应的电势分布情况。二、MATLAB基本语法(一)标识符与数 标识符是标志变量名、常量名、函数名和文件名的字符串的总

2、称。(二)矩阵及其元素的赋值赋值就是把数赋予代表常量或变量的标识符。MATLAB中的变量或常量都代表 矩阵,标量应看作1X1价的矩阵。赋值语句的一般形式为 变量=表达式(或数)列如,输入语句a=1 2 3;4 5 6;7 8 9则显示结果为a=1 2 34 5 67 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等。(三) 元素群运算把nXm矩阵中的每个元素当作对象,成群地执行某种运算,称为元素群运算。 元素群运算能大大简化编程,提高运算的效率,这是MATLAB优于其它许多语 言的一个特色。1、数组及其赋值数组通常是指单行或单列的矩阵,一个N阶数组就是1XN或NX1阶矩阵。N 阶数组可以表示N维向量。在求某些函数值或曲线时,常常要设定自变量的一系列值,例如,设间隔n在x 轴上从-3到3之间,每隔1取

4、一个点,共7个点,这是1X7阶的数组。如果逐 点给它赋值,将非常麻烦。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实际上是一个点,所以这个命令是把x轴分为7份。第三个变元 也可以不写,此时取默认值100.2、元素群的四则运

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

6、语句把 4个列向量组成一个矩阵,进行显示。得00l.000000.l0000.09980.99500.l0030.20000.l9870.980l0.20270.30000.29550.95530.30930.40000.38940.92ll0.42280.50000.47940.87760.54630.60000.56460.82530.684l0.70000.64420.76480.8432第一列是 x,以下各列依次是 sin(x), cos(x), tan(x)。for 语句for 语句的结构形式为for k=初值:增量:终值语句组A, end即它把语句组A反复执行N次。在每次执行时程序

7、中k值不同。可以算出循环 次数为N=l+ (终值一初值)/增量用 for 语句求三角函数表的程序为for x=0: 0.l : pi/4disp(x, sin(x), cos(x), tan(x);end所得结果将和上个例题中的答案相同。可以看出, MATLAB 的元素群运算功能 与一个for循环相当,由于它不需要每次检验表达式,运算速度比for语句快得多。for语句可以嵌套使用。四、MATLAB现用函数介绍MATLAB语言的难点是函数较多,仅基本部分就有700多个,其中常用的近200 个,要尽量多记少查,以提高编程效率,而且这是终生受益的。1、线型分隔函数linspace (-xm,xm,

8、n):在-xm与xm之间均分地产生n个点值,形成lXn元向量。其中-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;2 223 334 445 55Z=(X+Y).A2Z= 4101 010142 2 2 23 3334 4 4 45 5 5 51 4 9 164 9 16 259 16 25 36X,Y=meshgrid(x,y

9、)X=-3-2-10123-3-2-10123-3-2-10123-3-2-10123-3-2-10123Y= 111111114936493、二维空间中绘制等高线函数contour(X,Y,U,u):就是挑选出电势相等的 点,并在向量u指定的值上绘制等高线。注意u取值要恰当。四、编程1.画单个点电荷的平面电场线与等势线clear %清除变量E0=8.85e-12; %真空电介质常数C0=1/4/pi/E0; %归并常数q=1.6*10A(-19); % 元电荷电量xm=2.5; %横坐标范围ym=2; % 纵坐标范围x=linspace(-xm,xm); %横坐标向量y=linspace(-

10、ym,ym); %纵坐标向量X,Y=meshgrid(x,y); %设置坐标网点R=sqrt(X.A2+Y.A2); %点电荷到场点的距离U=C0*q./R; %计算电势u=1e-9:0.5e-9:5e-9; %等电势的电势向量figure %创建图形窗口contour(X,Y,U,u) %画等高线hold on %保持图形plot(0,0,o,markersize,12) %画点电荷axis equal tight %使坐标刻度相等 title(单个点电荷的平面电场线与等势线,fontsize,20) %显示标题 xlabel(r,fontsize,16) % 显示横坐标ylabel(E(U

11、), fontsize,16) %显示纵坐标单个点电荷的平血电场线与等势线2.画一对点电荷对的电场线和等势线clear %清除变量E0=8.85e-12; %真空电介质常数C0=1/4/pi/E0; %归并常数 q=1.6*10A(-19); % 元电荷电量 a=1; %电量比xm=2.5; %横坐标范围ym=2; %纵坐标范围 x=linspace(-xm,xm); % 横坐标向量y=linspace(-ym,ym); % 纵坐标向量X,Y=meshgrid(x,y); %设置坐标网点Rl = sqrt(X+1).人2+Y/2); %第一个正电荷到场点的距离R2 = sqrt(X-1).人2

12、+Y/2); %第二个正电荷到场点的距离U=C0*q./R1+C0*q./R2; %计算电势u=1e-9:0.5e-9:5e-9; %等电势的电势向量figure %创建图形窗口contour(X,Y,U,u) 画等势线grid on %加网格legend(num2str(u) %图例hold on %保持图像plot(-1,0,o,markersize,12) %画第一个正电荷 plot(1,0,o,markersize,12) %画第二个正电荷 axis equal tight %使坐标刻度相等% 显示标题%电荷比文本title(等量同号点电荷的电场线和等势线,fontsize ,2 xl

13、abel(r,fontsize,16) %显示横坐标 ylabel(E(U),fontsize,16) %显示纵坐标txt=pQEE:itQrm 2/itQrm 1= num2str(a) text(-xm,-ym-0.3,txt,fontsize,16) %显示电荷比电荷I;勺电场线和竽势线2 5-065-150.522.51 h1 5I e-OCD 12e-0C9 2.G5-30S3e-0C9 3.53-JOE4e-0CD5e-009DLLJ1-1.5-1匕:k荷ii下列的例子可以说明利用元素群运算的优越性。例如,要求列出一个三角函数表。这在MATLAB中只要一下两个语句键入 x=0:0.

14、1:pi/4;x, sin(x), cos(x), tan(x)第一条语句把数组 x 赋值,经转置后成为一个列向量。因为 sin, cos,tan函数都对元素群有效,得出的都是同阶的列向量。第二条语句把 4 个列向量组成一个矩阵,进行显示。得001.000000.10000.09980.99500.10030.20000.19870.98010.20270.30000.29550.95530.30930.40000.38940.92110.42280.50000.47940.87760.54630.60000.56460.82530.68410.70000.64420.76480.8432第一列是x,以下各列依次是sin(x), cos(x), tan(x)。for 语句for 语句的结构形式为for k=初值:增量:终值语句组A, end即它把语句组 A 反复执行 N 次。在每次执行时程序中 k 值不同。可以算出循环次数为N=l+ (终值一初值)/增量

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号