电偶极子周围电场电势分布的MATLAB三维模拟

Matlab可以用于模拟四维场的效果,本文以电偶极子的电场和电势场为例展示MATLAB在该方面领域的应用。

摘要

电偶极子由一个正电荷和一个负电荷组成,其电场和空间电势分布与单电荷相比具有一些重要的特性。本文将给出电场和电势场的近似表达式。这两个量的精确表达式是复杂的,不太常用,因此 MATLAB 被采用来操作精确值和绘制三维分布的远区域, 近区域和一侧区域的电偶极子

关键词: 电偶极子 , 电势, 能量密度, 电场, MATLAB

引言

由正电荷和负电荷等于q组成的系统,距离为d,称为电偶极子。对于电偶极子,我们定义了一个新的矢量,称为电偶极矩。电偶极子矩矢量 p 的大小是电荷 q 的大小,乘以它们之间的距离 d,P=qd。 向量方向从负电荷指向正电荷。电偶极子的电场和电势可以通过两个电荷的叠加来计算。这种方法很容易想出来,但有时很难计算结果。因此,我们可以使用合理的近似法来简化计算公式。电偶极子矩将用作新公式中的一个变量。

电偶极子的电势场

物理模型


我们可以利用两个电荷的电势叠加来获取太空中的电势。图1是一个电偶极子,其中心位于z轴上,两个电荷之间的距离为d,从点P到q和-q的距离为r+和**r-。
单个电荷的电势公式:

则我们可以以此类推,空间中的电势的分布公式为:
当电偶极子中心到目标点的距离
r远大于距离d时(实际上电偶极子默认的一个的定义就是这个)

其中 r- =Δ\DeltaΔr= rdcosθr d cos\thetardcosθ, 1/(r+r-) 可以认为等于 1/r21/r^{2}1/r2。因为 r >>Δ\DeltaΔr 起。从这个公式中我们可以知道,电偶极子电位没有球形对称性,并且会以1/r21/r^{2}1/r2的速度下降,比单个电子的库仑定律计算出的电位快得多,后者的电位会以1/r1/r1/r的速度下降。

MATLAB 模拟

我们设置 +q 在 (1,0,0) 和 -q 在 (-1,0,0),选择 1000 点在空间中,并计算他们的电势,绘制该1000个点用不同的颜色, 当颜色的波长较长(偏红), 电位是正, 颜色的波长较短(偏蓝), 电位是负。
我们首先考虑空间中电势的 远区场,并将采样点的范围设置为 -4 到 4。


在此图中,我们可以粗略看到电偶极子的电势分布与仅单个电子的电势分布不同。

但是,因为 MATLAB 必须为每个值分配颜色,因此当采样点接近电荷中心时,该值将远远大于远离电荷中心的值。

为了解决这个问题我们可以采用手动消除较大值的方法(比较原始的办法,若大家有更好的办法欢迎分享)。

具体操作为选择靠近电荷一定范围的电设置他们的电势为一个相对较小的值。

我们最终得到如上效果图。

此时如果我们想更进一步看出电偶极子单侧电势分布与单个电子时的区别,我们就可以对单侧进一步模拟:

效果非常明显。

MATLAB代码

x0=-4.5:0.15:4.5;
y0=-4.5:0.15:4.5;
z0=-4.5:0.15:4.5;%生成空间中226981个点
points1=zeros(61,61,61);
points2=zeros(3, 226981);%装入所有点的三个坐标的矩阵初始化
c=zeros(1, 226981);
q=1.6e-19;pointA=[1 0 0]';
pointB=[-1 0 0]';%定义电荷位置
for  i=1:61for j=1:61for k=1:61%这里用了点技术手段,为了把三维坐标放入二维的矩阵里points2(:,k+61*(j-1)+ 3721*(i-1))=[x0(i),y0(j),z0(k)]';%点坐标矩阵       endend
end
k=9e10;
%以上代码可以用linspace加meshgrid的组合代替,具体方法此处便不累述了
for p=1: 226981c(p)=k*((1/(norm(points2(:,p)-pointA))-1/(norm(points2(:,p)-pointB))));%c矩阵用来储存每个点的电势值   if (norm(points2(:,p)-pointB)<1)%此处便是手动去掉过大或过小值的地方,1是调整半径c(p)=-6e10;end% if (norm(points2(:,p)-pointA)<1)%此处便是手动去掉过大或过小值的地方,1是调整半径%  c(p)=6e10;%要画单侧的时候去掉这个if,双侧的时候保留这一块if语句%end% if (c(p)>0)%这是画一边的电势分布时用的
%        c(p)=1e7;%就是把另一边儿的点值归为一个同号的值然后坐标设为原点%  points2(:,p)=[0 0 0]';%如果需要全局的,去掉该if便可% end
end
scatter3(points2(1,:),points2(2,:),points2(3,:),2,c,'.')%电势值的大小用scatter3函数中的颜色参数来表示,2是点的大小参数
colorbar

电偶极子的电场

物理模型

我们可以利用这两个电荷的电场的叠加来获得空间中的电场,但是这种方法需要矢量操作,如果我们想要获得电场的分析表达式,这种方法可能很复杂。为了避免这种情况,我们选择计算电势场的梯度,以获得空间中的电偶极子电场分布。



这里附上一段如何推导球坐标系下的偏导公式的过程(转载自 从本质出发理解掌握三大坐标系下的三大方程(一)——梯度公式)

MATLAB模拟

取1000点被收集于一个长度为6的正方体,这可以帮助我们得到远区场电场。电场图基于电势分布,因此与以前相似的电势图将用来显示更有效的结果。


我们可以用同样的方法求出近区场

单侧电场分布如下

MATLAB代码

%注意这个代码单独使用只能生成带箭头的图,与上一部分代码联合使用才能做出上面的图
x=linspace(-4, 0, 12);
y=linspace(-4, 4, 12);
z=linspace(-4, 4, 12);
[xx, yy, zz]=meshgrid(x, y,z);%此处便用了上面提到的linspace加meshgrid的组合
%xx,yy,zz均为10*10*10的三维数组,分别对应空间中1000个点的x y z坐标值
up=-9e10.*(1./sqrt((xx-1).^2+yy.^2+zz.^2)-1./sqrt((xx+1).^2+yy.^2+zz.^2));%up为每个点的电势值
[dx, dy,dz]=gradient(up,0.4,0.4,0.4);%用MATLAB内部的函数gradient计算每个散点的沿x,y,z方向的梯度值,0.4是计算间距
hold on;dx=0.5*dx./sqrt(dx.^2+dy.^2+dz.^2);%将梯度向量等长度化
dy=0.5*dy./sqrt(dx.^2+dy.^2+dz.^2);
dz=0.5*dz./sqrt(dx.^2+dy.^2+dz.^2);quiver3(xx,yy,zz,dx, dy,dz);%该处用到quiver3画箭头专用函数
plot3(1,0,0,'o','color','r','MarkerSize',5)

电偶极子的MATLAB场模拟相关推荐

  1. matlab实例静电场,浅析Matlab模拟静电场三维图与恒定电流场模拟静电场

    浅析Matlab模拟静电场三维图与恒定电流场模拟静电场 浅析Matlab模拟静电场三维图 与恒定电流场模拟静电场 摘要:本文利用恒定电流场模拟静电场,通过寻找等势点的方法描绘出点电荷对的电力线和电势面 ...

  2. 如何用matlab画电场强度三维图,浅析matlab模拟静电场三维图与恒定电流场模拟静电场...

    浅析matlab模拟静电场三维图与恒定电流场模拟静电场 1 浅析 Matlab 模拟静电场三维图 与恒定电流场模拟静电场 摘要:本文利用恒定电流场模拟静电场,通过寻找等势点的方法描绘出点 电荷对的电力 ...

  3. MATLAB代码实现钻孔地震波波场模拟

    MATLAB代码实现钻孔地震波波场模拟 钻孔间地震波波场模拟对研究地震波在钻孔内传播非常重要,基于MATLAB实现了一种简单的钻孔地震波波场模拟,适合新手学习使用,对钻孔地震波的传播有个初步的认识. ...

  4. matlab 颜色势能,Matlab在模拟晶面势能分布中的应用

    ComputerKnowledgeand Technology 电脑知识与技术 本栏目责任编辑:唐一东人工智能及识别技术 第 6 卷第 31 期 (2010 年 11 月) Matlab 在模拟晶面势 ...

  5. 定向凝固各向异性枝晶生长 相场模拟

    定向凝固各向异性枝晶生长 相场模拟 1.依据Kobayashi的经典模型,实现定向凝固各向异性枝晶生长(可定量修改相关参数) 2.matlab手写代码,利用快速求解方法求解方程,代码注释详细 3.可利 ...

  6. matlab高中必修三数学模拟,基于MATLAB的模拟调制实验报告

    <基于MATLAB的模拟调制实验报告>由会员分享,可在线阅读,更多相关<基于MATLAB的模拟调制实验报告(19页珍藏版)>请在金锄头文库上搜索. 1.基于 MATLAB 的模 ...

  7. Matlab蒙特卡罗模拟

    Matlab蒙特卡罗模拟: 可以用蒙特卡罗方法来近似模拟求pi值: 思路: 设相互独立的随机变量X,Y均服从[-1,1]上的均匀分布,则(X,Y)服从{-1≤x≤1, 1≤y≤1}上的二元均匀分布(即 ...

  8. Matlab动画模拟分子布朗运动的示例

    Matlab动画模拟分子布朗运动的示例 %Brownian motion clf; n=20; s=0.02; x = rand(n,1)-0.5; y = rand(n,1)-0.5; h = pl ...

  9. matlab上机题库,matlab上机模拟试题

    matlab上机模拟试题 Matlab 上机模拟试题 1.计算当 时, 的值. 1,2,5 x   2 1 ( ) 2 1 x f x x e x      2.计算 3 0 0 tan ...

  10. matlab程序模拟汽车理论中的数据特性图动力特性图,matlab程序模拟汽车理论中的数据特性图1.doc...

    matlab程序模拟汽车理论中的数据特性图1.doc 车辆理论作业第三组第一大题确定一辆轻型货车的动力性能1.绘制发动机的使用外特性曲线N60014000NN/1000T1931329527N/100 ...

最新文章

  1. 利用Javadoc工具生成api文档
  2. c语言 蓝屏,C:WINDOWSMinidump文件 导致蓝屏请问是什么問題呢?
  3. 7.22 校内模拟赛
  4. [导入]将DataGrid输出到Excel文件
  5. 十四、CSS 3新特性详解(二)——2D转换(transform)、动画(animation)、动画序列
  6. java时间加减_java时间加减
  7. SpringAop与AspectJ的联系与区别____比较分析 Spring AOP 和 AspectJ 之间的差别
  8. [shell基础]——uniq命令
  9. 工业设备数据采集系统-采集精灵
  10. Ubuntu编译MT7628的固件(openwrt)
  11. UVA 12676 Inverting Huffman
  12. 蓝桥杯练习题 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
  13. Zabbix自动发现规则
  14. Adobe XMP SDK项目应用(续1)
  15. 02笔记 离散数学——命题逻辑——基于离散数学(第3版)_章炯民,陶增乐
  16. 洛谷 P4725 【模板】多项式对数函数 ntt
  17. 2019爪哇部落第十届新生选拔赛 题解
  18. libsvm和liblinear的使用总结
  19. 一台电脑主机怎样连接两个显示器
  20. Python|模拟文件系统

热门文章

  1. 倾向值匹配法的概述和应用+倾向值分析:统计方法与应用
  2. c语言函数的标准写法,C语言函数的两种写法变种
  3. 三维计算机动画的特征是真实性,3D动画电影的应用特点及制作管理内容
  4. 并行接口芯片8255与定时器/计数器接口芯片8253
  5. 针对Informer中时序数据ETT油温数据分析
  6. 【Android Test】糟心的“Empty test suite ”异常
  7. 坚果云和微云哪个好?谈谈我的使用感受
  8. 编码消耗率CCR,“上帝代码”,反射,简洁代码
  9. SAP开发入门-ABAP
  10. 粗谈全息投影与裸眼3D