目录

摘要1 引言2 理论基础3 系统设计3.1 程序设计代码[2]、[3]3.1.1 参数输入代码3.1.2 二维电场线和三维等势线的分布绘制代码3.1.3 三维电场线和三维等势面的分布绘制代码3.1.4 静电场中任意一点的电场强度和电势大小的计算代码

3.2 交互界面的设计和实现

4 结果分析与讨论4.1 系统运行界面4.2 二维电场线分布和三维等势线分布4.2.1 单一点电荷4.2.2 等量同号和等量异号点电荷4.2.3 八个点电荷

4.3 三维电场线分布和三维等势面分布4.3.1 单一点电荷4.3.2 等量同号和等量异号点电荷4.3.3 八个点电荷

4.4 静电场中任意一点的电场强度和电势大小的计算

5 结论参考文献附录附录A 参数输入代码附录B 二维电场线和三维等势线的分布绘制代码附录C 三维电场线和三维等势面的分布绘制代码附录D 静电场中任意一点的电场强度和电势大小的计算代码

摘要

静电场的知识是非常重要但同时又是非常抽象的。尤其是电场叠加得到的合电场的电场线和电势分布更是难以凭空想象。而目前网络上大部分的资料都是简单展示单个或两个电荷产生的比较经典的电场分布模型,且都是展现的电场的二维分布。但实际上,电场在空间中的分布是三维的。 本文则基于科学计算软件MATLAB,在借鉴部分参考资料的基础上,编写了基于MATLAB的静电场模拟系统,利用计算机强大的算力来帮助我们更进一步直观地认识静电场这一物质。本系统还利用MATLAB的图形用户界面创建工具GUIDE创建了交互式界面,操作更加方便[1]。

关键词:MATLAB;静电场;交互式界面

1 引言

静电场这一看不见摸不着的物质难以理解。由于条件限制,也不方便通过动手实验去直观感受静电场的分布。很难想象出多个点电荷叠加得出的静电场的电场线及电势分布是什么样的。如果想要对某个位置的电场强度和电势大小进行定量分析,其中的计算量可想而知。而计算机的发展使得人们得以从大量的数据计算中摆脱出来,且运算速度越来越快。因此,本文基于科学计算软件MATLAB,在借鉴部分参考资料的基础上,编写了基于MATLAB的静电场模拟系统。该系统可实现最大将8个处于同一平面中的任意位置和电荷量的点电荷产生的静电场进行叠加,并绘制出相应电场线分布和电势分布图形。还可以通过输入坐标值得到静电场中某一点处的电场强度和电势大小。本系统还利用MATLAB的图形用户界面创建工具GUIDE创建了交互式界面,操作更加方便。

2 理论基础

因为需要求坐标中一系列点的电势和电场强度,为了方便计算,可先求出电势φ,再直接利用电场强度和电势的微分关系求解E。所以在模拟多个静电场叠加之前,首先研究一个点电荷所产生的电场分布特点。由下述公式求得点电荷产生电场在某点的电势。

根据叠加原理得到扩展到多个点电荷产生的静电场叠加时的电势计算公式。

又根据电场强度和电势的微分关系,计算出电场强度。

但是在求解坐标系中某一点处的电场强度E时,只能通过分别求解Ex,Ey,Ez之后根据下述公式计算得到合场强。

最后根据计算所得的数据,利用MATLAB中的绘图函数将图形绘制出来即可。

3 系统设计

3.1 程序设计代码[2]、[3]

3.1.1 参数输入代码

用于输入点电荷的坐标位置和电荷量。

程序片段参见附录A。

3.1.2 二维电场线和三维等势线的分布绘制代码

用于计算点电荷合成静电场中的电势大小和电场强度,并绘制二维电场线和三维等势线的分布,这样绘制出来的就是我们最许多资料和参考书上常见的电场的二维分布图形。 计算和绘图原理: (1)建立平面二维坐标系。 (2)计算每个点电荷到坐标系中各点的距离,共计100*100=10000个点。 (3)根据得到的距离并利用叠加原理,计算所有点电荷在坐标系中每个点产生的电势大小。 (4)根据得到的电势,结合,计算坐标系中每个点处的电场强度。 (5)根据计算得到的数据,利用MATLAB中的图形绘制函数绘制二维电场线和三维等势线的分布。

程序片段参见附录B。

3.1.3 三维电场线和三维等势面的分布绘制代码

用于计算点电荷合成静电场中的电势大小和电场强度,并绘制三维电场线和三维等势面的分布。 计算和绘图原理与二维电场线和三维等势线的分布绘制相似,只是扩展到了三维坐标系上。

程序片段参见附录C。

3.1.4 静电场中任意一点的电场强度和电势大小的计算代码

用于计算点电荷合成静电场中某一点的电场强度和电势大小,并将结果返回到交互界面中。 计算原理: (1)建立坐标系。 (2)计算所求坐标与各个点电荷之间的距离。 (3)利用叠加原理,计算所有点电荷在这一点产生的电势之和。 (4)分别计算各点电荷与所求点在各坐标轴方向上的电场强度分量,最后合成总电场强度大小。

程序片段参见附录D。

3.2 交互界面的设计和实现

利用MATLAB的图形用户界面创建工具GUIDE创建了交互式界面如图所示。 MATLAB的GUIDE控件,简化了GUI应用程序的开发。本系统主要是通过文本编辑器输入参数,并在按钮中的回调函数中写入数据处理过程,单击按钮后,系统会自动生成需要绘制的图形或者返回需要计算的数字到静态文本框中显示。 系统主要分两大部分: 第一部分,图形绘制。该系统最多可同时对8个点电荷的静电场进行叠加,并绘制出相应的二维电场线分布和三维等势线分布或三维电场线分布和三维等势面分布。 第二部分,电场强度和电势大小计算。当我们设置好点电荷的参数后,可以通过输入坐标来计算静电场中某一点处的电场强度和电势大小。

4 结果分析与讨论

4.1 系统运行界面

点击运行之后系统会开始运行,如图所示。

4.2 二维电场线分布和三维等势线分布

4.2.1 单一点电荷

参数设置: q1:x=5,y=5,q=3 绘图结果如图所示。 蓝色带箭头线条为电场线分布,蓝色圆弧和彩色的山峰状图形为电势的分布和大小,颜色和高度都代表了电势的大小。绘制结果与理论相符。

4.2.2 等量同号和等量异号点电荷

参数设置: 等量同号:q1:x=5,y=5,q=3 q2:x=-5,y=-5,q=3 等量异号:q1:x=5,y=5,q=3 q2:x=-5,y=-5,q=-3 绘图结果如图所示。

4.2.3 八个点电荷

参数设置: q1:x=5,y=5,q=3 q2:x=6,y=-5,q=-3 q3:x=-5,y=3,q=3 q4:x=-5,y=-5,q=-3 q5:x=10,y=10,q=-2 q6:x=4,y=-10,q=4 q7:x=-10,y=10,q=-4 q8=x=-10,y=-8,q=4 绘图结果如图所示。

4.3 三维电场线分布和三维等势面分布

4.3.1 单一点电荷

参数设置: q1:x=10,y=5,z=-11,q=10 绘图结果如图所示。 蓝色线条为电场分布,彩色闭合曲面为电势分布,颜色代表电势的大小,暖色核心为正电荷,冷色核心为负电荷。

4.3.2 等量同号和等量异号点电荷

参数设置: 等量同号:q1:x=5,y=5,z=5,q=3 q2:x=-5,y=-5,z=-5,q=3 等量异号:q1:x=5,y=5,z=5,q=3 q2:x=-5,y=-5,z=-5,q=-3 绘图结果如图所示。

4.3.3 八个点电荷

参数设置: q1:x=6,y=6,z=6,q=3 q2:x=6,y=6,z=-6,q=-3 q3:x=6,y=-6,z=6,q=-3 q4:x=6,y=-6,z=-6,q=3 q5:x=-6,y=6,z=6,q=-3 q6:x=-6,y=6,z=-6,q=3 q7:x=-6,y=-6,z=6,q=3 q8:x=-6,y=-6,z=-6,q=-3 绘图结果如图所示。

4.4 静电场中任意一点的电场强度和电势大小的计算

参数设置: q1:x=5,y=10,z=5,q=3 q2:x=-3,y=-5,z=-5,q=5 q3:x=3,y=6,z=-12,q=-6 绘图结果如图所示。 取任意坐标系中的点(1.3,6.4,12.9)和点(6.7,12.4,5)计算其所在处电场强度和电势大小,计算结果如图所示。 综上所述,该系统对合成静电场分布的模拟结果和参数计算结果均与实际相符,模拟效果较好。

5 结论

经过观察与计算,模拟结果与实际结果相符,系统模拟效果较好。不足之处在于,由于程序中计算电势和电场强度的公式中分母会出现为0的情况而使程序无法正常运行,因此参照网络上的方法,在分母上加了一个无限小量eps(eps=2.22044604925031e-016),这样便使程序可以正常运行,同时在可接受范围内造成的误差很小。 在这个模拟系统中,每画一个图都要处理数以万计的数据,靠人力去计算根本不现实,而利用MATLAB和计算机强大的数据计算与处理能力,上万的数据在几秒钟内就可以被处理完成,并且数据的可视化使得我们能够更加直观的观察多个点电荷产生的叠加电场的电场线和电势分布,我们能借此更直观的认识静电场这一物质,帮助我们的学习。

参考文献

[1]栾玲,刘杰,冯立军.基于MATLAB的点电荷系电场分布的用户图形界面设计[J].物理与工程,2016,26(4):72-74. [2]王文涛,梅宇航.基于MATLAB的点电荷的静电场模拟[J].中学物理,2013,31(03):95-96. [3]刘浩,韩晶.MATLAB R2020a完全自学一本通[M].北京:电子工业出版社,2020:516-546.

附录

说明:由于作者水平有限,matlab编程为自学,在编写程序时只注重功能的实现,并没有考虑程序的运行速度、内存的使用等专业问题,因而程序运行时可能出现运行速度较慢等问题,但不影响结果的呈现。程序的正常运行需要自行创建用户界面,并将代码放在对应模块的回调函数中。

附录A 参数输入代码

%总共需要传入很多参数,但代码都是一样的,这里只截取一个

input=str2num(get(hObject,'String'));

if(isempty(input))

set(hObject,'String','0')

end

guidata(hObject,handles);

附录B 二维电场线和三维等势线的分布绘制代码

ep0=8.854*10.^(-12); %真空介电常数

e=1.602*10.^(-19); %元电荷电量

%获取坐标和电荷量参数

x1=get(handles.edit1,'String');x11=str2num(x1);

y1=get(handles.edit2,'String');y11=str2num(y1);

q1=get(handles.edit3,'String');q11=str2num(q1)*e; %q的值为e的整数倍

x2=get(handles.edit5,'String');x22=str2num(x2);

y2=get(handles.edit6,'String');y22=str2num(y2);

q2=get(handles.edit7,'String');q22=str2num(q2)*e;

x3=get(handles.edit8,'String');x33=str2num(x3);

y3=get(handles.edit9,'String');y33=str2num(y3);

q3=get(handles.edit10,'String');q33=str2num(q3)*e;

x4=get(handles.edit11,'String');x44=str2num(x4);

y4=get(handles.edit12,'String');y44=str2num(y4);

q4=get(handles.edit13,'String');q44=str2num(q4)*e;

x5=get(handles.edit14,'String');x55=str2num(x5);

y5=get(handles.edit15,'String');y55=str2num(y5);

q5=get(handles.edit16,'String');q55=str2num(q5)*e;

x6=get(handles.edit17,'String');x66=str2num(x6);

y6=get(handles.edit18,'String');y66=str2num(y6);

q6=get(handles.edit19,'String');q66=str2num(q6)*e;

x7=get(handles.edit20,'String');x77=str2num(x7);

y7=get(handles.edit21,'String');y77=str2num(y7);

q7=get(handles.edit22,'String');q77=str2num(q7)*e;

x8=get(handles.edit23,'String');x88=str2num(x8);

y8=get(handles.edit24,'String');y88=str2num(y8);

q8=get(handles.edit25,'String');q88=str2num(q8)*e;

%设置二维坐标系范围,建立二维坐标系lyd

mul=max([q11/e,q22/e,q33/e,q44/e,q55/e,q66/e,q77/e,q88/e])/2;

%坐标范围要随着电荷量的变化而变化

xm=20*mul;

ym=20*mul;

x=linspace(-xm,xm);

y=linspace(-ym,ym);

[X,Y]=meshgrid(x,y);

%计算每个点电荷到坐标系中各点的距离

R1=sqrt((X-x11).^2+(Y-y11).^2);

R2=sqrt((X-x22).^2+(Y-y22).^2);

R3=sqrt((X-x33).^2+(Y-y33).^2);

R4=sqrt((X-x44).^2+(Y-y44).^2);

R5=sqrt((X-x55).^2+(Y-y55).^2);

R6=sqrt((X-x66).^2+(Y-y66).^2);

R7=sqrt((X-x77).^2+(Y-y77).^2);

R8=sqrt((X-x88).^2+(Y-y88).^2);

%计算电势

U=(1./(4*pi*ep0))*((q11./R1)+(q22./R2)+(q33./R3)+(q44./R4)+(q55./R5)+(q66./R6)+(q77./R7)+(q88./R8));

%画图

figure

colormap('jet');%设置配色,颜色表示电势大小

contour3(X,Y,U,100);%画三维电势图

title('二维电场线和三维等势线分布图');%设置标题

%设置坐标轴名

xlabel('X/m');

ylabel('Y/m');

zlabel('U/v');

grid on%显示轴网格线

hold on%叠加绘图

%绘制坐标轴

plot([-xm;xm],[0;0])

plot([0;0],[-ym;ym])

%标出各点电荷所在位置

if q11~=0 %只有电荷量不为零时才会标记电荷位置lyd

plot(x11,y11,'o','MarkerSize',10)%标出电荷位置

end

if q22~=0

plot(x22,y22,'o','MarkerSize',10)

end

if q33~=0

plot(x33,y33,'o','MarkerSize',10)

end

if q44~=0

plot(x44,y44,'o','MarkerSize',10)

end

if q55~=0

plot(x55,y55,'o','MarkerSize',10)

end

if q66~=0

plot(x66,y66,'o','MarkerSize',10)

end

if q77~=0

plot(x77,y77,'o','MarkerSize',10)

end

if q88~=0

plot(x88,y88,'o','MarkerSize',10)

end

%根据电场强度等于电势的负梯度计算电场强度值

[Ex,Ey]=gradient(-U,x(2)-x(1),y(2)-y(1));

%绘制电场线

streamslice(X,Y,Ex,Ey)

附录C 三维电场线和三维等势面的分布绘制代码

ep0=8.854*10.^(-12); %真空介电常数

e=1.602*10.^(-19); %元电荷电量

%获取坐标和电荷量参数

x1=get(handles.edit1,'String');x11=str2num(x1);

y1=get(handles.edit2,'String');y11=str2num(y1);

z1=get(handles.edit29,'String');z11=str2num(z1);

q1=get(handles.edit3,'String');q11=str2num(q1)*e;%q的值为e的整数倍

x2=get(handles.edit5,'String');x22=str2num(x2);

y2=get(handles.edit6,'String');y22=str2num(y2);

z2=get(handles.edit30,'String');z22=str2num(z2);

q2=get(handles.edit7,'String');q22=str2num(q2)*e;

x3=get(handles.edit8,'String');x33=str2num(x3);

y3=get(handles.edit9,'String');y33=str2num(y3);

z3=get(handles.edit31,'String');z33=str2num(z3);

q3=get(handles.edit10,'String');q33=str2num(q3)*e;

x4=get(handles.edit11,'String');x44=str2num(x4);

y4=get(handles.edit12,'String');y44=str2num(y4);

z4=get(handles.edit32,'String');z44=str2num(z4);

q4=get(handles.edit13,'String');q44=str2num(q4)*e;

x5=get(handles.edit14,'String');x55=str2num(x5);

y5=get(handles.edit15,'String');y55=str2num(y5);

z5=get(handles.edit33,'String');z55=str2num(z5);

q5=get(handles.edit16,'String');q55=str2num(q5)*e;

x6=get(handles.edit17,'String');x66=str2num(x6);

y6=get(handles.edit18,'String');y66=str2num(y6);

z6=get(handles.edit34,'String');z66=str2num(z6);

q6=get(handles.edit19,'String');q66=str2num(q6)*e;

x7=get(handles.edit20,'String');x77=str2num(x7);

y7=get(handles.edit21,'String');y77=str2num(y7);

z7=get(handles.edit35,'String');z77=str2num(z7);

q7=get(handles.edit22,'String');q77=str2num(q7)*e;

x8=get(handles.edit23,'String');x88=str2num(x8);

y8=get(handles.edit24,'String');y88=str2num(y8);

z8=get(handles.edit36,'String');z88=str2num(z8);

q8=get(handles.edit25,'String');q88=str2num(q8)*e;

%设置三维坐标系范围,建立三维坐标系

mul=max([abs(q11)/e,abs(q22)/e,abs(q33)/e,abs(q44)/e,abs(q55)/e,abs(q66)/e,abs(q77)/e,abs(q88)/e])/2;

%坐标范围要随着电荷量的变化而变化lyd

xm=20*mul;

ym=20*mul;

zm=20*mul;

x=linspace(-xm,xm);

y=linspace(-ym,ym);

z=linspace(-zm,zm);

[X,Y,Z]=meshgrid(x,y,z);

%计算每个点电荷到坐标系中各点的距离

R1=sqrt((X-x11).^2+(Y-y11).^2+(Z-z11).^2);

R2=sqrt((X-x22).^2+(Y-y22).^2+(Z-z22).^2);

R3=sqrt((X-x33).^2+(Y-y33).^2+(Z-z33).^2);

R4=sqrt((X-x44).^2+(Y-y44).^2+(Z-z44).^2);

R5=sqrt((X-x55).^2+(Y-y55).^2+(Z-z55).^2);

R6=sqrt((X-x66).^2+(Y-y66).^2+(Z-z66).^2);

R7=sqrt((X-x77).^2+(Y-y77).^2+(Z-z77).^2);

R8=sqrt((X-x88).^2+(Y-y88).^2+(Z-z88).^2);

%根据叠加原理计算电势

U=(1./(4*pi*ep0))*((q11./R1)+(q22./R2)+(q33./R3)+(q44./R4)+(q55./R5)+(q66./R6)+(q77./R7)+(q88./R8));

%根据电场强度等于电势的负梯度计算电场强度lyd

[Ex,Ey,Ez]=gradient(-U,x(2)-x(1),y(2)-y(1),z(2)-z(1));

%画图

figure

view(3);%建立三维坐标系视图

title('三维电场线和三维等势面分布图');%设置标题

%设置坐标名

xlabel('X/m');

ylabel('Y/m');

zlabel('Z/m');

grid on%显示轴网格线

hold on%叠加绘图

%标出各点电荷所在位置

if q11~=0 %只有电荷量不为零时才会标记电荷位置

plot3(x11,y11,z11,'o','MarkerSize',10)%标出电荷位置

end

if q22~=0

plot3(x22,y22,z22,'o','MarkerSize',10)

end

if q33~=0

plot3(x33,y33,z33,'o','MarkerSize',10)

end

if q44~=0

plot3(x44,y44,z44,'o','MarkerSize',10)

end

if q55~=0

plot3(x55,y55,z55,'o','MarkerSize',10)

end

if q66~=0

plot3(x66,y66,z66,'o','MarkerSize',10)

end

if q77~=0

plot3(x77,y77,z77,'o','MarkerSize',10)

end

if q88~=0

plot3(x88,y88,z88,'o','MarkerSize',10)

end

%画等势面

colormap('jet'); %设置配色,颜色表示电势大小

for i=-10e-10:1e-10:10e-10

isosurface(x,y,z,U,i); %绘制等势面

end

alpha 0.1 %设置透明度

%画电场线

for k=-xm:xm/2:xm

for l=-xm:xm/2:xm

%从x=0的平面上的几个点作为出发点,绘制到相应点电荷的图线,后面同理

streamline(x,y,z,Ex,Ey,Ez,0,l,k);

end

end

for k=-xm:xm/2:xm

for l=-xm:xm/2:xm

streamline(x,y,z,Ex,Ey,Ez,xm,l,k);

end

end

for k=-xm:xm/2:xm

for l=-xm:xm/2:xm

streamline(x,y,z,Ex,Ey,Ez,-xm,l,k);

end

end

for k=-xm:xm/2:xm

for l=-xm:xm/2:xm

streamline(x,y,z,Ex,Ey,Ez,l,0,k);

end

end

for k=-xm:xm/2:xm

for l=-xm:xm/2:xm

streamline(x,y,z,Ex,Ey,Ez,l,xm,k);

end

end

for k=-xm:xm/2:xm

for l=-xm:xm/2:xm

streamline(x,y,z,Ex,Ey,Ez,l,-xm,k);

end

end

for k=-xm:xm/2:xm

for l=-xm:xm/2:xm

streamline(x,y,z,Ex,Ey,Ez,l,k,0);

end

end

for k=-xm:xm/2:xm

for l=-xm:xm/2:xm

streamline(x,y,z,Ex,Ey,Ez,l,k,xm);

end

end

for k=-xm:xm/2:xm

for l=-xm:xm/2:xm

streamline(x,y,z,Ex,Ey,Ez,l,k,-xm);

end

end

for k=-xm:xm/2:xm

for l=-xm:xm/2:xm

streamline(x,y,z,-Ex,-Ey,-Ez,0,l,k);

end

end

for k=-xm:xm/2:xm

for l=-xm:xm/2:xm

streamline(x,y,z,-Ex,-Ey,-Ez,xm,l,k);

end

end

for k=-xm:xm/2:xm

for l=-xm:xm/2:xm

streamline(x,y,z,-Ex,-Ey,-Ez,-xm,l,k);

end

end

for k=-xm:xm/2:xm

for l=-xm:xm/2:xm

streamline(x,y,z,-Ex,-Ey,-Ez,l,0,k);

end

end

for k=-xm:xm/2:xm

for l=-xm:xm/2:xm

streamline(x,y,z,-Ex,-Ey,-Ez,l,xm,k);

end

end

for k=-xm:xm/2:xm

for l=-xm:xm/2:xm

streamline(x,y,z,-Ex,-Ey,-Ez,l,-xm,k);

end

end

for k=-xm:xm/2:xm

for l=-xm:xm/2:xm

streamline(x,y,z,-Ex,-Ey,-Ez,l,k,0);

end

end

for k=-xm:xm/2:xm

for l=-xm:xm/2:xm

streamline(x,y,z,-Ex,-Ey,-Ez,l,k,xm);

end

end

for k=-xm:xm/2:xm

for l=-xm:xm/2:xm

streamline(x,y,z,-Ex,-Ey,-Ez,l,k,-xm);

end

end

附录D 静电场中任意一点的电场强度和电势大小的计算代码

ep0=8.85*10.^(-12);%真空介电常数

e=1.602*10.^(-19); %元电荷电量

%获取坐标和电荷量参数

x1=get(handles.edit1,'String');x11=str2num(x1);

y1=get(handles.edit2,'String');y11=str2num(y1);

z1=get(handles.edit29,'String');z11=str2num(z1);

q1=get(handles.edit3,'String');q11=str2num(q1)*e;%q的值为e的整数倍

x2=get(handles.edit5,'String');x22=str2num(x2);

y2=get(handles.edit6,'String');y22=str2num(y2);

z2=get(handles.edit30,'String');z22=str2num(z2);

q2=get(handles.edit7,'String');q22=str2num(q2)*e;

x3=get(handles.edit8,'String');x33=str2num(x3);

y3=get(handles.edit9,'String');y33=str2num(y3);

z3=get(handles.edit31,'String');z33=str2num(z3);

q3=get(handles.edit10,'String');q33=str2num(q3)*e;

x4=get(handles.edit11,'String');x44=str2num(x4);

y4=get(handles.edit12,'String');y44=str2num(y4);

z4=get(handles.edit32,'String');z44=str2num(z4);

q4=get(handles.edit13,'String');q44=str2num(q4)*e;

x5=get(handles.edit14,'String');x55=str2num(x5);

y5=get(handles.edit15,'String');y55=str2num(y5);

z5=get(handles.edit33,'String');z55=str2num(z5);

q5=get(handles.edit16,'String');q55=str2num(q5)*e;

x6=get(handles.edit17,'String');x66=str2num(x6);

y6=get(handles.edit18,'String');y66=str2num(y6);

z6=get(handles.edit34,'String');z66=str2num(z6);

q6=get(handles.edit19,'String');q66=str2num(q6)*e;

x7=get(handles.edit20,'String');x77=str2num(x7);

y7=get(handles.edit21,'String');y77=str2num(y7);

z7=get(handles.edit35,'String');z77=str2num(z7);

q7=get(handles.edit22,'String');q77=str2num(q7)*e;

x8=get(handles.edit23,'String');x88=str2num(x8);

y8=get(handles.edit24,'String');y88=str2num(y8);

z8=get(handles.edit36,'String');z88=str2num(z8);

q8=get(handles.edit25,'String');q88=str2num(q8)*e;

xq=get(handles.edit27,'String');xqq=str2num(xq);

yq=get(handles.edit28,'String');yqq=str2num(yq);

zq=get(handles.edit37,'String');zqq=str2num(zq);

%准备计算所用的数据

Q=[q11 q22 q33 q44 q55 q66 q77 q88];

Xz=[x11 x22 x33 x44 x55 x66 x77 x88];

Yz=[y11 y22 y33 y44 y55 y66 y77 y88];

Zz=[z11,z22,z33,z44,z55,z66,z77,z88];

%计算所求坐标与各个点电荷之间的距离

deltx=-Xz+xqq;

delty=-Yz+yqq;

deltz=-Zz+zqq;

R=sqrt(deltx.^2.+delty.^2+deltz.^2);

%计算所求坐标处的电势lyd

U=(1./(4*pi*ep0)).*sum(Q./(R+eps),'all');

%计算所求坐标处的电场强度

Ea=(1./(4*pi*ep0)).*sum(Q./((deltx.^2)+eps),'all');

Eb=(1./(4*pi*ep0)).*sum(Q./((delty.^2)+eps),'all');

Ec=(1./(4*pi*ep0)).*sum(Q./((deltz.^2)+eps),'all');

E=sqrt(Ea.^2+Eb.^2+Ec.^2);

%回传显示结果

set(handles.text37,'String',U);

set(handles.text34,'String',E);

guidata(hObject,handles);

文章来源

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: