利用MATLAB模拟点电荷的电场分布

一、实验目的:

1.熟悉点电荷的电场分布情况;

2.学会使用Matlab绘图;

二、实验内容:

1.根据库伦定律,利用Matlab强大的绘图功能画出单个点电荷的电场分布情况,包括电力线和等势面。

2.根据库伦定律,利用Matlab强大的绘图功能画出一对点电荷的电场分布情况,包括电力线的分布和等势面。

3.实验内容1中,可以在正电荷和负电荷中任选一组画出其电场分布,实验内容2中,可以在一对正电荷,一对负电荷和一正一负一对电荷中选择一组画出其电场分布情况。

三、实验步骤:

一.对于单个点荷的电力线和等势线:

真空中点电荷的场强大小是:

img (式1)

其中k=img为静电力恒量,q为点电荷的电量,r为点电荷到场点img(x,y)的距离。电场呈球对称分布,本实验中,取点电荷为正电荷,电力线是以电荷为起点的射线簇。以无穷远处为零势点,点电荷的电势为:

img (式2)

当U取常数时,此式就是等势面方程。等势面是以电荷中心,以r为半径的球面。

(1) 平面电力线的画法:

在平面上,电力线是等角平分布的射线簇,取射线的半径为img=0.12。其程序如下:

r0=0.12; % 射线的半径

th=linspace(0,2*pi,13); % 电力线的角度

[x,y]=pol2cart(th,r0); % 将极坐标转化为直角坐标

x=[x;0.1*x]; % 插入x的起始坐标

y=[y;0.1*y]; % 插入y的起始坐标

plot(x,y,‘b’) % 用蓝色画出所有电力线

grid on % 加网格

Hold on % 保持图像

plot(0,0,‘o’,‘MarkerSize’,12) % 画电荷

xlabel(‘x’,‘fontsize’,16) % 用16号字体标出X轴

ylabel(‘y’,‘fontsize’,16) % 用16号字体标出Y轴

title(‘正电荷的电力线’,‘fontsize’,20) % 添加标题

img

图1 正电荷的电力线

(2)平面等势面的画法

在过电荷的截面上,等势线就是以电荷为中心的圆簇。此实验中,由于r0=0.12,k=9x109,考虑到电势的大小,取q=1x10-9C,且最大的等势线的半径应该比射线的半径小一点,取r0=0.1,其电势为img。等势线共取7条,且最大的电势为最小电势的3倍。在电场线的基础上画出点电荷的等势线图,可以省略一些基本参数的设置,其图如图2所示,其程序如下:

k=9e9; % 设定k值

q=1e-9; % 设定电荷电量

r0=0.1; % 设定最大等势线的半径

u0=k*q/r0; % 算出最小的电势

u=linspace(1,3,7)*u0; % 求出各条等势线的电势大小

x=linspace(-r0,r0,100); % 将X坐标分成100等份

[X,Y]=meshgrid(x); % 在直角坐标中形成网格坐标

r=sqrt(X.2+Y.2); % 各个网格点到电荷点的距离

U=k*q./r; % 各点的电势

contour(X,Y,U,u) % 画出点电荷的电势面

title(‘正电荷的电场线和等势线’,‘fontsize’,20) %显示标题

img
图2 正电荷的电场线和等势线

(3) 点电荷的立体电力线

点电荷的立体等势线呈球形发射状的射线簇,因此要先形成三维单位球面坐标,参数还是用前面画平面图的参数。因此其程序如下:

r0=0.12 % 重新设定电力线的半径

[X,Y,Z]=sphere(8); % 形成三维单位球面坐标,绕Z轴一周有8条电力线

x=r0*X(😃'; % 将X化成行向量

y=r0*Y(😃'; % 将Y化成行向量

z=r0*Z(😃'; % 将Z化成行向量

x=[x;zeros(size(x))]; % 对x坐标插入原点

y=[y;zeros(size(y))]; % 对y坐标插入原点

z=[z;zeros(size(z))]; % 对z坐标插入原点

plot3(x,y,z,‘b’) % 画出所有电力线

Hold on % 保持图像

xlabel(‘x’,‘fontsize’,16) % 用16号字体标出X轴

ylabel(‘y’,‘fontsize’,16) % 用16号字体标出Y轴

zlabel(‘z’,‘fontsize’,16) % 用16号字体标出Z轴

title(‘正电荷电场线的三维图形’,‘fontsize’,20) % 添加标题

其图形如下:

img
图3 正电荷电场线的三维图形

(4) 点电荷的等势面

画等势面时同样要先形成球面,不同的等势面对应不同的半径,而坐标所形成的一个一维的行向量,而三维单位球面的每一维都是21*21的网格矩阵,矩阵的维度不一样,不能直接相乘。因此为减少计算量,只画5条等势面。其程序如下:

u=linspace(1,3,5)*u0; % 计算各面的电势

r=k*q./u; % 计算各等势面的半径

[X,Y,Z]=sphere; % 形成三维的单位球

Z(X<0&Y<0)=nan; % 把球面的四分之一设为非数,便于观察

surf(r(1)*X,r(1)*Y,r(1)*Z); % 画最外面的等势面

hold on; % 保持图形

surf(r(2)*X,r(2)*Y,r(2)*Z);

hold on;

surf(r(3)*X,r(3)*Y,r(3)*Z);

hold on;

surf(r(4)*X,r(4)*Y,r(4)*Z);

hold on;

surf(r(5)*X,r(5)*Y,r(5)*Z);

shading interp % 将各球面的颜色设置成浓淡变化的

xlabel(‘x’,‘fontsize’,16) % 标记X坐标轴

ylabel(‘y’,‘fontsize’,16) % 标记X坐标轴

zlabel(‘z’,‘fontsize’,16) % 标记X坐标轴

title(‘正电荷等势面的三维图形’,‘fontsize’,20) % 添加标题
img

图四 正电荷等势面的三维图形

二.对于一对点电荷的电力线与等势线

到于两个点电荷的电场分布,比一个点电荷的电场分布要复杂得多,电场线的切线为该点电场强度E的方向。因此画电场线需要先计算出当前点的电场强度E方向,而E又是一个矢量,没有像电势U那样可以直接进行标量计算。因此对于多个点电荷的电场来说,先画出其等势线会更方便一些。

(1) 一对点电荷的平面等势线

对于两个点电荷,不妨取,正在这里插入图片描述
电荷在x轴的正方向,负电荷在x轴的负方向,它们到原点的距离定为a=0.02;假设平面的范围为img=0.05,在这里插入图片描述
=0.04。则其程序如下:

q1=1e-9; % 设置正电荷电量

q2=-1e-9; % 设置负电荷电量

a=0.02; % 设置电荷到原点的距离

xx0=0.05; % 设置X轴的范围

yy0=0.04; % 设置Y轴的范围

x=linspace(-xx0,xx0,20); % 将X轴进行20等分

y=linspace(-yy0,yy0,50); % 将Y轴进行50等分

[X,Y]=meshgrid(x); % 形成网格坐标

r1=sqrt((X-a).2+Y.2); % 各点到正电荷的距离

r2=sqrt((X+a).2+Y.2); % 各点到负电荷的距离

U=kq1./r1+kq2./r2; % 各点的电势

u0=500; % 设定最大电势的大小

u=linspace(u0,-u0,11); % 计算各等势线的电势

contour(X,Y,U,u,‘k-’); % 画出所有的等势线

Grid on % 形成网格

Hold on % 保持图形

plot(0,0,‘o’,‘MarkerSize’,12) % 画电荷

xlabel(‘x’,‘fontsize’,16) % 用16号字体标出X轴

ylabel(‘y’,‘fontsize’,16) % 用16号字体标出Y轴

title(‘一对相异电荷的等势线图’,‘fontsize’,20) % 添加标题

img

图五 一对相异电荷的等势线图

(2) 一对点电荷的平面电场线

各点的电场强度方向代替电力线。根据电势的梯度可以求出各点的场强的两个分量再在此方向上标上箭头。其程序如下所示:

[Ex,Ey]=gradient(-U); % 各点的场强的两个分量

E=sqrt(Ex.2+Ey.2); % 各点的合场强

Ex=Ex./E; % 为使箭头等长,将场强归一化

Ey=Ey./E;

quiver(X,Y,Ex,Ey); % 标出各网点的电场强度方向

title(‘一对相异电荷的等势线图和电场线图’,‘fontsize’,20); 标出标题

其图如图六所示:img

图六 一对相异电荷的等势线图和电场线图

四、 实验总结:

1、以上方法同样适合不同极性和大小的电荷的组合,只需要按要求设置不同的电荷电量即可。

2、以Matlab强大的数值计算和绘图功能,将抽象的电场形象化,大大增加了我们对电场的感性认识,为今后的学习打了牢固的基础。

3、由于对Matlab 的不熟悉,对多点电荷的三维电场分布情况,无法将具体的思路转化成实际的程序语言,所以无法绘出它的三维图形。今后一定要多学习Matlab这方面的知识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/436464.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

虚拟化之内存(Memory)

一 内存的查看方式 free -k/m/h cat /proc/meminfodmesg |grep memory free命令的实质是根据meminfo中的文件来提取信息 二 内存虚拟化 1.概念&#xff1a;由于物理MMU只能通过Host机的物理地址进行寻址&#xff0c;所以实现内存虚拟化&#xff0c;关键是需要将Guest机的…

⭐每天一道leetcode:58.最后一个单词的长度(简单;istringstream;遍历查看)

⭐今日份题目 给你一个字符串 s&#xff0c;由若干单词组成&#xff0c;单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 示例1 输入&#xff1a;s "Hello World" 输出&#xff1a…

Ubuntu将c++编译成.so文件并测试

一、准备cpp和h文件 创建test.cpp 在cpp中定义相加的函数funcAdd&#xff0c;给出函数的细节代码 #include <iostream> using namespace std;int funcAdd(int x, int y) {return xy; }创建test.h 在h中声明定义的函数&#xff0c;不需要任何细节 #ifndef __TEST__ #…

Catf1agCTF-Web通关合集

本文相关的ctf平台链接&#xff1a;Catf1agCTF - 综合训练平台 WEB签到 查看源代码 flag倒叙了&#xff0c;可以使用下面这个 文本字符串倒序在线工具(ESJSON在线工具) flag&#xff1a; catf1ag{welcome_to_catf1agctf_!!!_gogogo_!!!} flag在哪呢&#xff1f; 查看源代…

1、MQ_介绍、优缺点、类型等

MQ介绍 1. MQ概述 MQ&#xff08;Message Queue&#xff09;&#xff1a;消息队列&#xff0c;是基础数据结构中FIFO&#xff08;first in first out&#xff09;的一种数据结构。一般用来解决流量削峰、应用解耦、异步处理等问题&#xff0c;实现高性能&#xff0c;高可用&a…

Error:java:JDK isn‘t specified for module “模块名称“

可能是创建模块后不小心删掉了.idea.或.idea出错 只要删除.idea&#xff0c;close project出去&#xff0c;重新进让idea自动下载

FL Studio2024中文正式版水果编曲软件(支持苹果M1处理器)

FL Studio 2024是一款功能强大的数字音频工作站&#xff0c;它具有多种功能和特点&#xff0c;使得音乐制作变得更加简单、高效和有趣。 首先&#xff0c;它支持多轨录音和编辑&#xff0c;用户可以同时处理多个音频轨道&#xff0c;进行复杂的音乐编排和混音。此外&#xff0…

蜘蛛池是什么意思,怎么生成蜘蛛池

蜘蛛池是由自然界中的蜘蛛群落构成的一个小生态系统&#xff0c;也是身处自然界中的游客们可以在风雨中体验到最贴近自然气息的地方。 点开我主页面 Baidu蜘蛛的作用&#xff1a; 引蜘蛛逐渐收录&#xff0c;降权引蜘蛛可以疗伤&#xff0c;排名/收录不稳定&#xff0c;没有收…

基于springboot+vue的善筹网众筹网站

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

Linux 开发工具 yum、git、gdb

目录 一、yum 1、软件包 2、rzsz 3、注意事项 4、查看软件包 5、安装软件 6、卸载软件 二、git操作 1、克隆三板斧 2、第一次使用会出现以下情况&#xff1a; 未配置用户名和邮箱&#xff1a; push后弹出提示 三、gdb使用 1、背景 2、使用方法 例一&#xff1a…

数据库:2024/3/6

作业1&#xff1a;使用C语言完成数据库的增删改 代码&#xff1a; #include <myhead.h>//定义添加员工信息函数 int Add_worker(sqlite3 *ppDb) {//准备sql语句printf("请输入要添加的员工信息:\n");//从终端获取员工信息char rbuf[128]"";fgets(r…

阿里云2核2G服务器多少钱?99元一年,轻量云是61元一年

阿里云2核2G服务器多少钱&#xff1f;99元一年&#xff0c;轻量云服务器是61元一年。2核2G服务器性能如何&#xff1f;性能很不错&#xff0c;不限制CPU性能&#xff0c;99元2核2G服务器是ECS经济型e实例&#xff0c;61元2核2G服务器是轻量应用服务器&#xff0c;都是3M公网带宽…

Facial Micro-Expressions:An Overview 阅读笔记

Proceedings of the IEEE上一篇微表情相关的综述&#xff0c;写的很详细。从心理学与计算机两个领域阐述了微表情生成的原因与相关算法&#xff0c;值得仔细研读。 摘要&#xff1a; Four main tasks in ME analysis arespecifically discussed,including ME spotting,ME recog…

【MySQL】数据库设计

目录 数据库设计基本任务 软件项目开发周期中数据库设计数据库设计的基本步骤解释需求分析需求分析的三个步骤&#xff1a;1.需求调查:2.分析数据字典内容定义数据的方法案例 3. 评审 概念结构设计概念模型概念结构设计E-R图概念模型组成元素&#xff1a;关系解释案例分析 逻辑…

获得店铺的所有商品API接口

使用淘宝淘口令接口的步骤通常包括&#xff1a; 注册成为淘宝开放平台的开发者&#xff1a;在淘宝开放平台网站上注册账号并完成认证。 创建应用以获取API密钥&#xff1a;在您的开发者控制台中创建一个应用&#xff0c;并获取用于API调用的密钥&#xff0c;如Client ID和Clie…

【QT】鼠标事件<QMouseEvent>

事件&#xff08;鼠标事件&#xff09; 功能单一的事件&#xff0c;鼠标进来是一个事件&#xff0c;鼠标出去是另外一个事件。 QT提供了很多的事件函数&#xff0c;我们通过重写这些事件函数就可以实现我们想要的效果。 事件函数都是虚函数 写一个子类&#xff0c;继承QLab…

Python 文件基础科普与文件打开技术详解【第117篇—文件打开技术】

Python 文件基础科普与文件打开技术详解 在Python编程中&#xff0c;文件操作是一项基础而重要的任务。无论是读取数据、写入文件还是进行其他文件处理操作&#xff0c;都需要对文件基础知识有一定的了解。在本文中&#xff0c;我们将首先介绍Python文件的基础概念&#xff0c…

Unity性能优化篇(九) 模型优化之LOD技术概述以及操作方法

LOD模型优化技术概述: 1.LOD技术可以根据摄像头远近来显示不同精度的模型(例如吃鸡游戏 随着跳伞高度 来显示下面树木以及建筑的模型精度) LOD模型优化技术操作方法: 可使用Unity自带的LOD Group组件&#xff0c;并根据项目的情况来调整该组件的属性。Untiy资源商店也有一些其…

机器学习——线性回归

机器学习——线性回归 文章目录 机器学习——线性回归一、什么是线性回归二、一元线性回归方程三、损失函数四、代码实现五、运用说明 一、什么是线性回归 线性回归是一种用来建立自变量和因变量之间线性关系的统计分析方法&#xff0c;也是机器学习中最常见、最容易理解的一个…