还剩3页未读,继续阅读
文本内容:
模拟点电荷系的电场线和等势面Matlab
一、背景电场线和等势面是描述电场性质的重要的物理量,在物理教学中,通常需要绘制点电荷系的电场线和等势面,因此研究用计算机绘制电场线和等势面具有重要的现实意义是一种广泛应用于科研、工程计算和数值分析的高级语言利用Matlab MATLAB可以方便实现空间点电荷电场线及等势面的求解及绘制
二、问题描述若平面真空中存在若干点电荷,记为、、根据电势叠加原理,Ql Q2Q3……Qn,可得到这个点电荷系所激发的电场中某点的电势为P式中:为点电荷到点的距离建立平面直角坐标系,设点坐标为ri Qip px,y,所在位置的坐标为对于某一确定的点,可令为某一定值,那么Qi Xi,yi,p Up=c,c上式可改写为7,二—二Cj=i J%—%2+y_y.2实际上,满足上式的点不止一个,因此方程是点电荷系产生电场中电势恒为p的一个等势面方程如果取不同的值,可以得出不同的等势面根据等势面的c c画法要求,一般按等差数列的变化对取值,并由上式得到一系列的等势面方程c结合等势面方程,用编写程序绘出等势面,再根据电场线垂直于等势Matlab面,对电势求梯度,即可描绘出电场线以三个点电荷为例,电荷量分别为、、对应坐标为QI Q2Q3,xl,yl、于是,由上式得到某一点的电势为x2,y2x3,y3,px,y,kQ\+Up-西尸十⑶一Jx—%
2.一丁22+y_.2J%—X32+y-%2
三、实现过程MATLAB程序主要用到如下函数MATLAB linspace用法Iinspacexl,x2N/功能是中的一个指令,用于产生之间的点行矢量其linspace Matlabxl,x2N中、、分别为起始值、终止值、元素个数若缺省默认点数为xl x2N N,100o meshgrid的作用是分别产生以向量为行,向量为列的两个大小相同的矩阵meshgrid x,y xy gradient其中为其水平方向上的梯度,为其垂直方向上的梯度,的第一[Fx,Fy]=gradientx,Fx FyFx列元素为原矩阵第二列与第一列元素之差,的第二列元素为原矩阵第三列与第一列元Fx素之差除以以此类推:最后一列则为最后两列之差同理,可2,Fxi j=Fi,j4-1-FiJ-1/2o5以得到Fy streamlinestreamlineX,Y,Z,U,V,W,startx,starty,startz绘制三维向量的流线型矢量场定义了矢量的坐标,而且必U,V,W X,Y,Z U,V,W X,Y,Z须是三维的数据网格定义了这些流线的起点startx,starty,startz代码如下cicclear%第一个点的横纵坐标x1=-1;;yi=o%第二个点的横纵坐标x2=1;;y2=o%第三个点的横纵坐标x3=0;y3=i;%三个点电荷的带电量;q1=1;q2=1q3=1;%静电常量k=9e10;xm=5;ym=5;x=linspace-xm,xm,100;y=linspace-ym,ym,100;[X Y]=meshgridx,y;U=k*q
1./sqrtX-x
1.A2+Y-y
1.A2+k*q
2./sqrtX-x
2.A2+Y-y
2.A2+k*q
3./sqrtX-x
3.A2+Y-y
3.A2;colormap
[000];contourx,y,U,100axis equalholdon[Ex Ey]=gradient-U;dth1=20/absq1;th1=dth1:dth1:360*2*pi/360;r0=
0.1;x1=r0*costh1+x1;y1=rO*sinth1+y1;x2=r0*costh1+x2;y2=r0*sinth1+y2;x3=r0*costh1+x3;y3=r0*sinth1+y3;streamlineX,Y,Ex,Ey,x1,y1streamlineX,Y,Ex,Ey,x2,y2streamlineX,Y,Ex,Ey,x3,y3
四、运行结果)三个电荷都是的时候,电场线和等势面如图所示1+1一个电荷都是两个是的时候,电场线和等势面如图所示3+1,-1。