电磁场与波课设-关于多点电荷的电力线与等位面的matlab计算仿真

电磁场与波课设-关于多点电荷的电力线与等位面的matlab计算仿真

本文章记录了电磁场与波的课程设计-关于多点电荷的电力线与等位面的matlab计算仿真

三极子的仿真

直接进入正题三个电荷分布在正电荷(-1,0)、正电荷(1,0)、负电荷(0、1)位置处,其中正电荷电量为q,负电荷电量为2q,matlab仿真电势和电场线代码如下:

clear %清除变量
q=1; %电量比
xm=2.5; %横坐标范围
ym=2; %横坐标范围
x=linspace(-xm,xm); %横坐标向量
y=linspace(-ym,ym); %纵坐标向量
[X,Y]=meshgrid(x,y); %设置坐标网点
R1=sqrt((X-1).^2+Y.^2); %第一个点电荷到场点的距离
R2=sqrt(X.^2+(Y-1).^2); %第二个点电荷到场点的距离
R3=sqrt((X+1).^2+Y.^2); %第三个点电荷到场点的距离
U=1./R1-2./R2+1./R3; %计算电势
u=-4:0.5:4; %等势线的电势向量
figure %创建图形窗口
contour(X,Y,U,u,'--') %画等势线
hold on %保持图像
plot(-1,0,'o','MarkerSize',16) %画第一个点电荷
plot(0,1,'o','MarkerSize',12) %画第二个点电荷
plot(1,0,'o','MarkerSize',16) %画第三个点电荷
[Ex,Ey]=gradient(-U,x(2)-x(1),y(2)-y(1)); %用电势梯度求场强的两个分量
r0=0.1; %电场线起点半径
a=20; %设置电场线角度间隔
b=(a:a:360-a)*pi/180; %第一个点电荷电场线的始末角度和步长
x1=r0*cos(b)-1; %第一个点电荷电场线的起点横坐标
y1=r0*sin(b); %第一个点电荷电场线的起点纵坐标
streamline(X,Y,Ex,Ey,x1,y1) %画第一个点电荷电场线
d=(-180-a:a:180-a)*pi/180; %第三个点电荷电场线的始末角度和步长 
x3=r0*cos(d)+1; %第三个点电荷电场线的起点横坐标
y3=r0*sin(d); %第三个点电荷电场线的起点纵坐标
streamline(X,Y,Ex,Ey,x3,y3) %画第三点电荷电场线
axis equal tight %使坐标刻度相等
title('三极子的电场线和等势线','fontsize',16) %显示标题
xlabel('\itx/r (电势单位:kq/r=1) ','fontsize',12) %显示横坐标
ylabel('\ity/r','fontsize',12) %显示纵坐标

由于电场线从正电荷发出而终止于负电荷所以只需要从正电荷处画电场线。
代码实现后图像如下:在这里插入图片描述
三个电荷分布在正电荷(-1,0)、正电荷(1,0)、负电荷(0、0)位置处,其中正电荷电量为q,负电荷电量为2q,matlab仿真电势和电场线代码如下:

clear %清除变量
q=1; %电量比
xm=2.5; %横坐标范围
ym=2; %横坐标范围
x=linspace(-xm,xm); %横坐标向量
y=linspace(-ym,ym); %纵坐标向量
[X,Y]=meshgrid(x,y); %设置坐标网点
R1=sqrt((X-1).^2+Y.^2); %第一个点电荷到场点的距离
R2=sqrt(X.^2+Y.^2); %第二个点电荷到场点的距离
R3=sqrt((X+1).^2+Y.^2); %第三个点电荷到场点的距离
U=1./R1-2./R2+1./R3; %计算电势
u=-4:0.5:4; %等势线的电势向量
figure %创建图形窗口
contour(X,Y,U,u,'--') %画等势线
hold on %保持图像
plot(-1,0,'o','MarkerSize',16) %画第一个点电荷
plot(0,0,'o','MarkerSize',12) %画第二个点电荷
plot(1,0,'o','MarkerSize',16) %画第三个点电荷
[Ex,Ey]=gradient(-U,x(2)-x(1),y(2)-y(1)); %用电势梯度求场强的两个分量
r0=0.1; %电场线起点半径
a=20; %设置电场线角度间隔
b=(a:a:360-a)*pi/180; %第一个点电荷电场线的始末角度和步长
x1=r0*cos(b)-1; %第一个点电荷电场线的起点横坐标
y1=r0*sin(b); %第一个点电荷电场线的起点纵坐标
streamline(X,Y,Ex,Ey,x1,y1) %画第一个点电荷电场线
d=(-180-a:a:180-a)*pi/180; %第三个点电荷电场线的始末角度和步长 
x3=r0*cos(d)+1; %第三个点电荷电场线的起点横坐标
y3=r0*sin(d); %第三个点电荷电场线的起点纵坐标
streamline(X,Y,Ex,Ey,x3,y3) %画第三点电荷电场线
axis equal tight %使坐标刻度相等
title('三极子的电场线和等势线','fontsize',16) %显示标题
xlabel('\itx/r (电势单位:kq/r=1) ','fontsize',12) %显示横坐标
ylabel('\ity/r','fontsize',12) %显示纵坐标

在这里插入图片描述

四极子的仿真

四个等量同种正电荷位于正方形的四角其电势与电场仿真如下:

clear %清除变量
q=1; %电量比
xm=4.5; %横坐标范围
ym=4; %横坐标范围
x=linspace(-xm,xm); %横坐标向量
y=linspace(-ym,ym); %纵坐标向量
[X,Y]=meshgrid(x,y); %设置坐标网点
R1=sqrt((X-1).^2+Y.^2); %第一个点电荷到场点的距离
R2=sqrt((X-1).^2+(Y+2).^2); %第二个点电荷到场点的距离
R3=sqrt((X+1).^2+Y.^2); %第三个点电荷到场点的距离
R4=sqrt((X+1).^2+(Y+2).^2); %第四个点电荷到场点的距离
U=1./R1+1./R2+1./R3+1./R4; %计算电势
u=-4:0.5:4; %等势线的电势向量
figure %创建图形窗口
contour(X,Y,U,u,'--') %画等势线
hold on %保持图像
plot(-1,0,'o','MarkerSize',12) %画第一个点电荷
plot(-1,-2,'o','MarkerSize',16) %画第二个点电荷
plot(1,0,'o','MarkerSize',16) %画第三个点电荷
plot(1,-2,'o','MarkerSize',12) %画第四个点电荷
[Ex,Ey]=gradient(-U,x(2)-x(1),y(2)-y(1)); %用电势梯度求场强的两个分量
r0=0.1; %电场线起点半径
a=20; %设置电场线角度间隔
b=(a:a:360-a)*pi/180; %第一个点电荷电场线的始末角度和步长
x1=r0*cos(b)-1; %第一个点电荷电场线的起点横坐标
y1=r0*sin(b); %第一个点电荷电场线的起点纵坐标
streamline(X,Y,Ex,Ey,x1,y1) %画第一个点电荷电场线
c=(-180-a:a:180-a)*pi/180; %第二个点电荷电场线的始末角度和步长
x2=r0*cos(c)-1; %第二个点电荷电场线的起点横坐标
y2=r0*sin(c)-2; %第二个点电荷电场线的起点纵坐标
streamline(X,Y,Ex,Ey,x2,y2) %画第二个点电荷电场线
d=(-180-a:a:180-a)*pi/180; %第三个点电荷电场线的始末角度和步长 
x3=r0*cos(d)+1; %第三个点电荷电场线的起点横坐标
y3=r0*sin(d); %第三个点电荷电场线的起点纵坐标
streamline(X,Y,Ex,Ey,x3,y3) %画第三点电荷电场线
e=(a:a:360-a)*pi/180; %第四个点电荷电场线的始末角度和步长
x4=r0*cos(e)+1; %第四个点电荷电场线的起点横坐标
y4=r0*sin(e)-2; %第四个点电荷电场线的起点纵坐标
streamline(X,Y,Ex,Ey,x4,y4) %画第四个点电荷电场线
axis equal tight %使坐标刻度相等
title('等量同种四极子的电场线和等势线','fontsize',16) %显示标题
xlabel('\itx/r (电势单位:kq/r=1) ','fontsize',12) %显示横坐标
ylabel('\ity/r','fontsize',12) %显示纵坐标

在这里插入图片描述
异种四电荷电势与电场线分布:

clear %清除变量
q=1; %电量比
xm=4.5; %横坐标范围
ym=4; %横坐标范围
x=linspace(-xm,xm); %横坐标向量
y=linspace(-ym,ym); %纵坐标向量
[X,Y]=meshgrid(x,y); %设置坐标网点
R1=sqrt((X-1).^2+Y.^2); %第一个点电荷到场点的距离
R2=sqrt((X-1).^2+(Y+2).^2); %第二个点电荷到场点的距离
R3=sqrt((X+1).^2+Y.^2); %第三个点电荷到场点的距离
R4=sqrt((X+1).^2+(Y+2).^2); %第四个点电荷到场点的距离
U=1./R1-1./R2-1./R3+1./R4; %计算电势
u=-4:0.5:4; %等势线的电势向量
figure %创建图形窗口
contour(X,Y,U,u,'--') %画等势线
hold on %保持图像
plot(-1,0,'o','MarkerSize',12) %画第一个点电荷
plot(-1,-2,'o','MarkerSize',16) %画第二个点电荷
plot(1,0,'o','MarkerSize',16) %画第三个点电荷
plot(1,-2,'o','MarkerSize',12) %画第四个点电荷
[Ex,Ey]=gradient(-U,x(2)-x(1),y(2)-y(1)); %用电势梯度求场强的两个分量
r0=0.1; %电场线起点半径
a=20; %设置电场线角度间隔
b=(a:a:360-a)*pi/180; %第一个点电荷电场线的始末角度和步长
x1=r0*cos(b)-1; %第一个点电荷电场线的起点横坐标
y1=r0*sin(b); %第一个点电荷电场线的起点纵坐标
streamline(X,Y,Ex,Ey,x1,y1) %画第一个点电荷电场线
c=(-180-a:a:180-a)*pi/180; %第二个点电荷电场线的始末角度和步长
x2=r0*cos(c)-1; %第二个点电荷电场线的起点横坐标
y2=r0*sin(c)-2; %第二个点电荷电场线的起点纵坐标
streamline(X,Y,Ex,Ey,x2,y2) %画第二个点电荷电场线
d=(-180-a:a:180-a)*pi/180; %第三个点电荷电场线的始末角度和步长 
x3=r0*cos(d)+1; %第三个点电荷电场线的起点横坐标
y3=r0*sin(d); %第三个点电荷电场线的起点纵坐标
streamline(X,Y,Ex,Ey,x3,y3) %画第三点电荷电场线
e=(a:a:360-a)*pi/180; %第四个点电荷电场线的始末角度和步长
x4=r0*cos(e)+1; %第四个点电荷电场线的起点横坐标
y4=r0*sin(e)-2; %第四个点电荷电场线的起点纵坐标
streamline(X,Y,Ex,Ey,x4,y4) %画第四个点电荷电场线
axis equal tight %使坐标刻度相等
title('异种四极子的电场线和等势线','fontsize',16) %显示标题
xlabel('\itx/r (电势单位:kq/r=1) ','fontsize',12) %显示横坐标
ylabel('\ity/r','fontsize',12) %显示纵坐标

在这里插入图片描述
初次创作如有错误请指出。

参考文献:王明美.点电荷系电场的计算机模拟[J].广西物理 ,2012,33(3).

  • 7
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MATLAB可以通过有限元法(FEM)和有限差分法(FDM)等方法计算电磁场。以下是一个简单的示例程序,用于计算电场和磁场沿Z轴的分布: ```matlab % 定义常量 epsilon0 = 8.854e-12; % 真空电容率 mu0 = 4*pi*1e-7; % 真空磁导率 % 定义材料参数 epsilon1 = 2.25*epsilon0; % 介质1的相对电容率 mu1 = mu0; % 介质1的相对磁导率 epsilon2 = 1.0*epsilon0; % 介质2的相对电容率 mu2 = mu0; % 介质2的相对磁导率 % 定义空间和网格参数 L = 0.1; % 空间长度 N = 200; % 网格数目 dz = L/(N-1); % 网格间距 % 初始化电场和磁场 Ez = zeros(N, 1); Hy = zeros(N, 1); % 定义时间和时间步长 dt = dz / (2*3e8); % 稳定性条件 tmax = 1e-9; % 计算时间 nsteps = round(tmax / dt); % 时间步数 % 计算系数矩阵 m1 = (1/(dz*mu1)) * ones(N,1); m2 = (1/(dz*mu2)) * ones(N,1); e1 = (dt/epsilon1) * ones(N,1); e2 = (dt/epsilon2) * ones(N,1); % 迭代计算电磁场 for n=1:nsteps % 更新磁场 Hy(1:N-1) = Hy(1:N-1) + m1(1:N-1) .* (Ez(2:N) - Ez(1:N-1)); Hy(N) = Hy(N) + m1(N) * (0 - Ez(N)); % 更新电场 Ez(2:N-1) = Ez(2:N-1) + e1(2:N-1) .* (Hy(2:N-1) - Hy(1:N-2)) - e2(2:N-1) .* (Hy(3:N) - Hy(2:N-1)); Ez(1) = 0; Ez(N) = 0; end % 绘制电磁场图像 z = linspace(0, L, N); figure; plot(z, Ez, 'r', z, Hy, 'b'); xlabel('Z (m)'); ylabel('Ez (V/m), Hy (A/m)'); legend('电场', '磁场'); ``` 该程序中的材料是两个层厚度相等的介质,介电常数分别为2.25和1,其余参数为真空。程序通过时间迭代计算电场和磁场,并在最后绘制它们沿Z轴的分布。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值