电荷等势面的三维模拟

孤立正电荷

物理情景是Oxy平面上,在x0=0、y0=0处有一正电荷,求出此时的电势分布情况。

由电势的表达式U=\(\frac{{kQ}}{r}\)可以计算出该点电荷电场的电势分布,其中r=\(\sqrt {{{(x - {x_0})}^2} + {{(y - {y_0})}^2}} \)。

在Matlab中,曲面是用xy平面的各个格点上的z坐标来定义,相邻点用直线连接。因此,为了描绘二元函数形成的空间曲面,首先要建立平面的数据网格。即根据xy的定义域[x1,y1]、[x2,y2]生成平面上的坐标格点,每个格点对应一组[x,y]。生成数据网格的命令是meshgrid,格式为[X,Y]=meshgrid(x,y),使用meshgrid命令,将两个独立的矢量xy组成数据网格。

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);

选定一系列xy后,组成平面上的网格点,再计算对应每一点上的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,主要有下面两种形式:

默认的方位角为-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  )

文件下载(已下载 1492 次)

发布时间:2017/12/11 12:17:52  阅读次数:6523

2006 - 2024,推荐分辨率1024*768以上,推荐浏览器Chrome、Edge等现代浏览器,截止2021年12月5日的访问次数:1872万9823 站长邮箱

沪ICP备18037240号-1

沪公网安备 31011002002865号