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

news2025/1/16 21:06:45

一、实验目的:

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这方面的知识。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SpringBoot+Vue 的专家医院预约挂号系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

Type-C接口小家电使用PD诱骗芯片获取充电器的5V9V12V20V供电

随着Type-C接口的逐渐普及&#xff0c;小家电设备慢慢开始采用Type-C&#xff0c;淘汰了以往的DC接口&#xff0c;Type-C接口在小家电设备中的应用也越来越广泛。Type-C接口支持大电流宽电压范围&#xff0c;如何确保设备能够正确识别并使用各种电压&#xff08;例如5V、9V、12…

Go编程实战:高效利用encoding/binary进行数据编解码

Go编程实战&#xff1a;高效利用encoding/binary进行数据编解码 引言encoding/binary 包核心概念ByteOrder 接口Binary 数据类型的处理处理复杂数据结构 基础使用教程数据类型与二进制格式的映射基本读写操作写操作 - binary.Write读操作 - binary.Read 错误处理 高级功能与技巧…

可调恒定电流稳压器NSI50150ADT4G车规级LED驱动器 提供专业的汽车级照明解决方案

NSI50150ADT4G产品概述&#xff1a; NSI50150ADT4G可调恒定电流稳压器 (CCR) &#xff0c;是一款简单、经济和耐用的器件&#xff0c;适用于为 LED 中的调节电流提供成本高效的方案&#xff08;与恒定电流二极管 CCD 类似&#xff09;。该 (CCR) 基于自偏置晶体管 (SBT) 技术&…

Java开发从入门到精通(一):Java的基础语法进阶

Java大数据开发和安全开发 &#xff08;一&#xff09;Java注释符1.1 单行注释 //1.2 多行注释 /* */1.3 文档注释 /** */1.4 各种注释区别1.5 注释的特点1.5 注释的快捷键 &#xff08;二&#xff09;Java的字面量&#xff08;三&#xff09;Java的变量3.1 认识变量3.2 为什么…

使用SMTP javamail发送邮件

一、SMTP协议 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则&#xff0c;由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇&#xff0c;它帮助每台计算机在发送或中转信件时找到下一个目的地。使用javamail编写发送…

【JavaEE】_Spring MVC 项目单个及多个参数传参

目录 1. 传递单个参数 1.1 关于参数名的问题 2. 传递多个参数 2.1 关于参数顺序的问题 2.2 关于基本类型与包装类的问题 1. 传递单个参数 现创建Spring MVC项目&#xff0c;.java文件内容如下&#xff1a; package com.example.demo.controller;import org.springframewo…

NCDA 大赛 App 设计获奖作品分享!

未来设计师全国高校数字艺术设计大赛简称“NCDA大赛”&#xff0c;是由工信部人才交流中心主办&#xff0c;直接对联合国接国际设计赛事的一个大学生竞赛&#xff0c;不仅由教育部中国高等教育学会认定&#xff0c;教育厅发文立项&#xff0c;还有来自我们都很熟悉的“学习强国…

vue3中指定组件名称:可以使用插件vite-plugin-vue-setup-extend

第一步&#xff1a;安装vite-plugin-vue-setup-extend插件 第二步&#xff1a;修改vite.config.ts文件配置

C#多线程(4)——任务并行库TPL

文章目录 1 什么是TPL2 创建与启动任务3 等待任务4 任务中的异常处理5 取消任务 1 什么是TPL T P L \textcolor{red}{TPL} TPL&#xff08;Task Parallel Library&#xff09;任务并行库&#xff0c;是从.NetFramwork4.0后引入的基于异步操作的一组API。TPL的底层是基于多线程实…

nginx: mac使用vscode本地调试nginx

vscode安装c语言插件 在extensions中搜索"c/c"&#xff0c; 将前3个插件都安装 在extensions中搜索"cmake"&#xff0c; 将前2个插件都安装 下载nginx源码 nginx 源码: https://github.com/nginx/nginx 编译运行Nginx 修改 /auto/cc/conf 文件&…

【论文阅读】单词级文本攻击TAAD2.2

TAAD2.2论文概览 0.前言1-101.Bridge the Gap Between CV and NLP! A Gradient-based Textual Adversarial Attack Frameworka. 背景b. 方法c. 结果d. 论文及代码 2.TextHacker: Learning based Hybrid Local Search Algorithm for Text Hard-label Adversarial Attacka. 背景b…

数据结构——lesson6二叉树基础

前言 hellohello~这里是土土数据结构学习笔记&#x1f973;&#x1f973; &#x1f4a5;个人主页&#xff1a;大耳朵土土垚的博客 &#x1f4a5; 所属专栏&#xff1a;数据结构学习笔记 &#x1f4a5;对于数据结构顺序表链表有疑问的都可以在上面数据结构的专栏进行学习哦~感…

ping多个IP的工具

Ping Tool 项目地址 python开发的IP搜索小工具 ping一个网段所有IP&#xff0c;显示结果查看某个ip地址开放监听的端口配置可保存

查询IP地址保障电商平台安全

随着电子商务的快速发展&#xff0c;网购已经成为人们日常生活中不可或缺的一部分。然而&#xff0c;网络交易安全一直是人们关注的焦点之一&#xff0c;尤其是在面对日益频发的网络诈骗和欺诈行为时。为了提高网购平台交易的安全性&#xff0c;一种有效的方法是通过查询IP地址…

Java红黑树实现Map简单示例

红黑树&#xff08;Red-Black Tree&#xff09;是一种自平衡的二叉搜索树&#xff0c;它是由 Rudolf Bayer 在 1972 年提出的&#xff0c;后来由 Leo J. Guibas 和 Robert Sedgewick 在 1978 年发表的论文中形式化定义。 红黑树具有以下特性&#xff1a; 1.节点颜色&#xff1…

java数据结构与算法刷题-----LeetCode653. 两数之和 IV - 输入二叉搜索树

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 前序遍历加hash2. 中序遍历双指针 1. 前序遍历加hash 解题思…

(上海电力展)2024上海国际智慧电力与电气设备展览会

2024上海国际智慧电力与电气设备展览会 2024 Shanghai International Intelligent Power and Electrical Equipment Exhibition 时 间&#xff1a;2024年7月13-15日 地 点&#xff1a;上海新国际博览中心 展会简介Introduction 随着全球进入互联网和数字经济时…

逻辑分析仪分析硬件spi

一&#xff0c;cubemx配置好后&#xff0c;使用spi接口发送数据&#xff1b; 发送5个字节&#xff1a;1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff1b; 第1个字节&#xff1a;1&#xff1b; 第2个字节&#xff1a;2&#xff1b; 第3个字节&#xff1a;3&am…

【趣玩一下】StreamDiffusion一秒100张!实时生成二次元老婆照!

源代码 https://github.com/cumulo-autumn/StreamDiffusion 基础原理 首先Stream Batch&#xff0c;是将原来顺序的去噪步骤改为批量化处理。允许在一个批处理中&#xff0c;每幅图像处于去噪流程的不同阶段。 如此一来&#xff0c;可以大大减少UNet推理次数&#xff0c;显著…