利用MATLAB模拟点电荷电力线和等势面摘要:本文依据探索点电荷的电力线和等势线的实验理论,着重阐述利用Matlab这一计算机软件模拟和绘制点电荷的电力线和等势面的分布(包括单个正点电荷和一对等量相异点电荷),形象直观展现了点电荷在其周围场中产生的电场线以及等势面的分布状况,这为与电荷有关的理论与实验提供了帮助,并且可以通过Matlab编程描绘这样直观可视的图样总结出不同情况的点电荷的电力线和等势面的分布规律。关键字:电场;Matlab;试探电荷;电力线;等势线;模拟图样0引言在真空中的点电荷,在周围产生了电场。电场既看不见也摸不着,人们在探究电场的性质及分布状况的时候,用试探电荷在电场中的表现及分布状况来表征电场的状况,然后在纸张上画出电荷的电场线和等势面。该过程不仅繁琐艰难,而且误差较大。如果我们利用Matlab这一计算机软件进行模拟该过程,将会给我们带来极大的便利,所绘制得到的电场线和等势线面不仅生动直观,而且较接近实际情况。正因为如此,随着当今科技的迅速发展,Matlab这一计算机软件也进行了持续的开发,并得到了广泛的应用。1物理依据本次试验的目的,就在于熟悉单个点电荷及一对点电荷的电场分布情况,并且学会使用Matlab进行数值编程与计算,并绘出相应的图像。根据库伦定律:在真空中,两个静止点电荷之间的作用力与这两个电荷的电量乘积成正比,与它们之间距离的平方成反比,作用力的方向在两个电荷的连线上,两电荷同号为排斥力,异号为吸引力,它们之间的作用力F满足[1]:F=k𝑄1𝑄2𝑅2(1)其中k=14𝜋𝜀0,𝜀0称为介电常数,根据电场力的概念:F=EQ(2)跟库伦定律的表达式(1)对比,可以得到点电荷产生的电场强度E为[2]E=kQ𝑅2(3)(3)式即为点电荷产生的电场的势函数。我们以(3)式作为目标函数对电场利用Matlab进行模拟。在Matlab中,由以上公式算出各点的电场强度E后,可以用Matlab自带的库函数绘出相应电荷的电场分布情况。2利用Matlab模拟试验一.根据库伦定律和电场强度的表达式(3)绘制单个正点电荷的电场线和等势面。以0.05的单位长度设置横坐标和纵坐标,取不同的数值进行程序的编程,选择不同的颜色来区分不同的等势线。利用Matlab强大的绘图功能画出单个正点电荷的电场分布情况,包括电力线和等势面,得到的图像如图1所示。操作程序见附录(程序一)二.根据库伦定律和电场强度的表达式(3)绘制一对相异等量点电荷的电场线和等势面。以0.01的单位长度设置横坐标和纵坐标,取不同的数值进行编程和计算。利用Matlab强大的绘图功能画出一对相异点电荷的电场分布情况,包括电场线和等势面,得到的图像如图2所示。操作程序见附录(程序二)-0.2-0.15-0.1-0.0500.050.10.15-0.2-0.15-0.1-0.0500.050.10.15xy单个正点电荷的电场线与等势线xy一对相异电荷的等势线图和电场线图-0.05-0.04-0.03-0.02-0.0100.010.020.030.040.05-0.05-0.04-0.03-0.02-0.0100.010.020.030.040.05图1单个正点电荷的等势面与电场线图2一对等量相异点电荷的电场线和等势面3试验规律总结一.如图1所示,单个正点电荷的电场线是起始于电荷而向外辐射状的,场线由密集变稀疏,表示电场强度E由大变小。而等势面是一群同中心椭球面,椭球面中心则是该正点电荷。二.如图2所示,一对相异等量点电荷的电场线起始于正点电荷,终止于负点电荷,电场线密集的地方电场强度大,电场线稀疏的地方电场强度小。而等势面则是两群同焦点的椭球面,椭球面的同焦点则分别是该等量相异点电荷,并且这两群椭球面关于y轴对称。4结束语通过这次试验,使我们对单个正点电荷及一对等量点电荷的电场分布情况有了更深的认识,并进一步学习了Matlab一些基本的函数的用法和一些基本图像的画法。更使我们领略了Matlab强大的功能和广泛的可适用性。参考文献:[1]钞曦旭,杨万民,唐纯青.MATLAB及其在大学物理课程中的应用[M].陕西师范大学出版社.2006.[2]黄永胜.电磁学[M].辽宁大学出版社,2010.附录程序一:r0=0.12;%电力线半径th=linspace(0,2*pi,13);%每隔2π/12画一条电力线[x,y]=pol2cart(th,r0);%极坐标化直角坐标x=[x;0.1*x];y=[y;0.1*y];plot(x,y,'b')%用蓝色线x为横坐标,y为纵坐标绘制连线图gridon%在画图的时候添加网格线holdon%一张图上同时显示多组数据plot(0,0,'o','Markersize',12)%画点电荷xlabel('x','fontsize',16)%在x轴上标上x,大小为16ylabel('y','fontsize',16)%在y轴上标上y,大小为16k=9e9;%赋值q=1e-9;r1=0.1;u0=k*q/r1;%求最高电势u=linspace(1,3,7)*u0;%取10u0(10^2)u0…(10^7)u0x=linspace(-r0,r0,100);[X,Y]=meshgrid(x);%以x的维数生成网格采样点r=sqrt(X.^2+Y.^2);%半径函数U=k*q./r;%电势函数contour(X,Y,U,u);%画等高线程序二:k=9e9;q1=1e-9;q2=-1e-9;a=0.02;xx0=0.05;yy0=0.04;x=linspace(-xx0,xx0,20);y=linspace(-yy0,yy0,50);[X,Y]=meshgrid(x);r1=sqrt((X-a).^2+Y.^2);r2=sqrt((X+a).^2+Y.^2);U=k*q1./r1+k*q2./r2;u=linspace(500,-500,11);contour(X,Y,U,u,'k-');gridonholdonplot(a,0,'o','MarkerSize',12);plot(-a,0,'o','MarkerSize',12);xlabel('x','fontsize',16);ylabel('y','fontsize',16);[Ex,Ey]=gradient(-U);%求梯度E=sqrt(Ex.^2+Ey.^2);Ex=Ex./E;Ey=Ey./E;quiver(X,Y,Ex,Ey);%根据梯度画矢量箭头