电荷等势面的三维模拟
孤立正电荷
物理情景是Oxy平面上,在x0=0、y0=0处有一正电荷,求出此时的电势分布情况。
由电势的表达式U=\(\frac{{kQ}}{r}\)可以计算出该点电荷电场的电势分布,其中r=\(\sqrt {{{(x - {x_0})}^2} + {{(y - {y_0})}^2}} \)。
在Matlab中,曲面是用xy平面的各个格点上的z坐标来定义,相邻点用直线连接。因此,为了描绘二元函数形成的空间曲面,首先要建立平面的数据网格。即根据x、y的定义域[x1,y1]、[x2,y2]生成平面上的坐标格点,每个格点对应一组[x,y]。生成数据网格的命令是meshgrid,格式为[X,Y]=meshgrid(x,y),使用meshgrid命令,将两个独立的矢量x、y组成数据网格。
mesh是三维网格作图命令,mesh(x,y,z)画出了每一个格点(x,y)上对应的z值。
代码如下:
[x,y]=meshgrid(-2:0.2:2,-2:0.2:2); %建立数据网格 z=1./sqrt(x.^2+y.^2+0.01); %电势的表达式 mesh(x,y,z);
选定一系列x和y后,组成平面上的网格点,再计算对应每一点上的z值。-2:0.1:2,-2:0.1:2分别是选取横坐标与纵坐标的一系列数值,meshgrid是生成数据网格的命令。
z=1./sqrt(x.^2+y.^2+0.01);是场点(x,y)的电势。当场点在电荷处时,会出现分母为零的情况,因此,在r里加了一个小量0.01,这样既可以完成计算,又不会对结果的正确性造成太大影响。
另外需要注意的是表达式中的“./”、“.^”是对数组运算的算符,含义与数值运算中的“/”、“^”相同,不同之处是后者只对单个数值变量进行运算,而前者对整个数组变量中的所有元素同时进行运算。
截图如下:
孤立负电荷
surfl(X,Y,Z)是画带光照模式的三维曲面图。该命令显示一个带阴影的曲面,融合了周围的、散射的和镜面反射的光照模式。要获得较平滑的颜色过度,应该使用有线性强度变化的色图,如gray、copper、bone、pink等。
代码如下:
[x,y]=meshgrid(-2:0.01:2,-2:0.01:2); %建立数据网格 z=-1./sqrt(x.^2+y.^2+0.01); %电势的表达式 surfl(x,y,z); %三维曲面绘图 shading interp; %平滑三维曲面 colormap(gray); %设定颜色为灰色 %colormap(copper); %设定颜色为线性铜色度 %colormap(bone); %设定颜色为带一点蓝色的灰度 %colormap(pink); %设定颜色为粉红的彩色度 hold on; contour3(x,y,z,10); %绘制等势线
截图如下:
等量异种电荷
代码如下:
[x,y]=meshgrid(-4:0.01:4,-4:0.01:4); %建立数据网格 z=1./sqrt((x+2).^2+y.^2+0.01)-1./sqrt((x-2).^2+y.^2+0.01);%电势的表达式 surfl(x,y,z);%三维曲面绘图 shading interp;%平滑三维曲面 colormap(gray);%设定颜色为灰色 hold on; contour3(x,y,z,20); aviobj = VideoWriter('PosNeg.mp4','MPEG-4'); open(aviobj); for i=1:120 view(-37.5+0.3125*(i-1),30-0.25*(i-1)); frame = getframe; writeVideo(aviobj,frame); end close(aviobj);
动态视频如下:
说明
Matlab中视点控制的指令为view,主要有下面两种形式:
- view([方位角,俯视角]) 通过方位角、俯视角设置视点
- view([vx,vy,vz]) 通过直角坐标设置视点
默认的方位角为-37.5°,俯视角为30°,以上代码在120帧的时间内将角度变为(0,0),即从正前方观看这个三维模型。然后还要将这段动画保存在一个命名为“PosNeg”的mp4格式的视频文件中。
高考点击
【2011年上海高考】两个等量异种点电荷位于x轴上,相对原点对称分布,正确描述电势φ随位置x变化规律的是图( A )
等量同种电荷
代码如下:
[x,y]=meshgrid(-4:0.2:4,-4:0.2:4); %建立数据网格 z=1./sqrt((x+2).^2+y.^2+0.01)+1./sqrt((x-2).^2+y.^2+0.01);%电势的表达式 surf(x,y,z); colormap cool; hold on; contour3(x,y,z,20,'-r','LineWidth',2); %用红色粗线画等势线
截图如下:
试题点击
下列各图能反映两个等量正电荷连线中垂线(图中x轴)上各点电势的分布的是( B )
文件下载(已下载 1501 次)
发布时间:2017/12/11 下午12:17:52 阅读次数:8246