讲稿版利用Matlab模拟点电荷电场的分布.docx

上传人:b****0 文档编号:18181550 上传时间:2023-08-13 格式:DOCX 页数:10 大小:42.61KB
下载 相关 举报
讲稿版利用Matlab模拟点电荷电场的分布.docx_第1页
第1页 / 共10页
讲稿版利用Matlab模拟点电荷电场的分布.docx_第2页
第2页 / 共10页
讲稿版利用Matlab模拟点电荷电场的分布.docx_第3页
第3页 / 共10页
讲稿版利用Matlab模拟点电荷电场的分布.docx_第4页
第4页 / 共10页
讲稿版利用Matlab模拟点电荷电场的分布.docx_第5页
第5页 / 共10页
讲稿版利用Matlab模拟点电荷电场的分布.docx_第6页
第6页 / 共10页
讲稿版利用Matlab模拟点电荷电场的分布.docx_第7页
第7页 / 共10页
讲稿版利用Matlab模拟点电荷电场的分布.docx_第8页
第8页 / 共10页
讲稿版利用Matlab模拟点电荷电场的分布.docx_第9页
第9页 / 共10页
讲稿版利用Matlab模拟点电荷电场的分布.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

讲稿版利用Matlab模拟点电荷电场的分布.docx

《讲稿版利用Matlab模拟点电荷电场的分布.docx》由会员分享,可在线阅读,更多相关《讲稿版利用Matlab模拟点电荷电场的分布.docx(10页珍藏版)》请在冰点文库上搜索。

讲稿版利用Matlab模拟点电荷电场的分布.docx

讲稿版利用Matlab模拟点电荷电场的分布

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

一、目的

1.熟悉单个点电荷及一对点电荷的电势分布情况;

2.学会使用MATLAB进行数值计算,并绘出相应的图形;

二、原理

根据库仑定律:

在真空中,两个静止点电荷之间的作用力与这两个电荷的电量乘积成正比,与它们之间距离的平方成反比,作用力的方向在两个电荷的连线上,两电荷同号为斥力,异号为吸引力,它们之间的力

满足:

(式1)

由电场强度

的定义可知:

(式2)

对于点电荷,根据场论基础中的定义,有势场

的势函数为

(式3)

在MATLAB中,由以上公式算出各点的电势

,可以用MATLAB自带的库函数绘出相应的电势分布情况。

三、MATLAB基本语法

(一)标识符与数

标识符是标志变量名、常量名、函数名和文件名的字符串的总称。

(二)矩阵及其元素的赋值

赋值就是把数赋予代表常量或变量的标识符。

MATLAB中的变量或常量都代表矩阵,标量应看作1×1价的矩阵。

赋值语句的一般形式为

变量=表达式(或数)

列如,输入语句

a=[123;456;789]

则显示结果为

a=123

456

789

输入x=[123456789]

结果为

x=123456789

可以看出,矩阵的值放在方括号中,同一行中各元素之间以逗号或空格分开,不同行的元素以分号隔开。

语句的结尾可用回车或逗号“,”,此时会立即显示运算结果;如果不希望显示结果,就以分号“;”结尾再回车,此时运算仍然执行,只是不作显示。

变量的元素用圆括号“()”中的数字(也称为下标)来注明,一维矩阵(也称数组)中的元素用一个下标表示,二维矩阵可有两个下标数,以逗号分开。

在MATLAB中可以单独给元素赋值,例如,a(2,3)=6,x

(2)=2等。

(三)元素群运算

把n×m矩阵中的每个元素当作对象,成群地执行某种运算,称为元素群运算。

元素群运算能大大简化编程,提高运算的效率,这是MATLAB优于其它许多语言的一个特色。

1、数组及其赋值

数组通常是指单行或单列的矩阵,一个N阶数组就是1×N或N×1阶矩阵。

N阶数组可以表示N维向量。

在求某些函数值或曲线时,常常要设定自变量的一系列值,例如,设间隔n在x轴上从-3到3之间,每隔1取一个点,共7个点,这是1×7阶的数组。

如果逐点给它赋值,将非常麻烦。

MATLAB提供了两种给等间隔数组赋值的简易方法。

(1)用两个冒号组成等增量语句,其格式为x=[初值:

增量:

终值]。

例如,键入

x=[-3:

1:

3]

得x=-3-2-10123

当然增量为1时,这个增量值是可以略去的。

(2)linspace函数表述等距离分割,其格式为x=linspace(初值,终值,点数)。

例如键入

x=linspace(-3,3,7)

得x=-3-2-10123

在x轴上-3和3实际上是一个点,所以这个命令是把x轴分为7份。

第三个变元也可以不写,此时取默认值100.

2、元素群的四则运算和幂次运算

元素群运算也就是单个元素之间的运算。

为了与矩阵作为整体的运算符号相区别,要在运算符“*”、“/”、“\”、“^”前加一个点符号“.”,以表示进行元素群运算。

矩阵的加减法本来就是对元素进行的,故不再有元素群运算符。

参与元素群运算的两个矩阵必须是同价的(标量除外)。

下列的例子可以说明利用元素群运算的优越性。

例如,要求列出一个三角函数表。

这在MATLAB中只要一下两个语句

键入x=[0:

0.1:

pi/4]’;[x,sin(x),cos(x),tan(x)]

第一条语句把数组x赋值,经转置后成为一个列向量。

因为sin,cos,tan函数都对元素群有效,得出的都是同阶的列向量。

第二条语句把4个列向量组成一个矩阵,进行显示。

得001.00000

0.10000.09980.99500.1003

0.20000.19870.98010.2027

0.30000.29550.95530.3093

0.40000.38940.92110.4228

0.50000.47940.87760.5463

0.60000.56460.82530.6841

0.70000.64420.76480.8432

第一列是x,以下各列依次是sin(x),cos(x),tan(x)。

for语句

for语句的结构形式为

fork=初值:

增量:

终值语句组A,end

即它把语句组A反复执行N次。

在每次执行时程序中k值不同。

可以算出循环次数为N=1+(终值—初值)/增量

用for语句求三角函数表的程序为

forx=0:

0.1:

pi/4

disp([x,sin(x),cos(x),tan(x)]);

end

所得结果将和上个例题中的答案相同。

可以看出,MATLAB的元素群运算功能与一个for循环相当,由于它不需要每次检验表达式,运算速度比for语句快得多。

for语句可以嵌套使用。

四、MATLAB现用函数介绍

MATLAB语言的难点是函数较多,仅基本部分就有700多个,其中常用的近200个,要尽量多记少查,以提高编程效率,而且这是终生受益的。

1、线型分隔函数linspace(-xm,xm,n):

在-xm与xm之间均分地产生n个点值,形成1×n元向量。

其中-xm是初值,xm是终值,n是点数。

2、两个变量的标量指令[X,Y]=meshgrid(x,y):

将向量x,y变换为数组X,Y,这样就可以将两个一维向量生成两个二维矩阵。

其中,数组X的各行是向量x的拷贝,总行数为y向量的元素个数;数组Y的各列是向量y的拷贝,总列数为x向量的元素个数。

例如x=-3:

3;

y=1:

5;

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

X=-3-2-10123

-3-2-10123

-3-2-10123

-3-2-10123

-3-2-10123

Y=1111111

2222222

3333333

4444444

5555555

Z=(X+Y).^2

Z=41014916

101491625

0149162536

14916253649

491625364964

3、二维空间中绘制等高线函数contour(X,Y,U,u):

就是挑选出电势相等的点,并在向量u指定的值上绘制等高线。

注意u取值要恰当。

四、编程

1.画单个点电荷的平面电场线与等势线

clear%清除变量

E0=8.85e-12;%真空电介质常数

C0=1/4/pi/E0;%归并常数

q=1.6*10^(-19);%元电荷电量

xm=2.5;%横坐标范围

ym=2;%纵坐标范围

x=linspace(-xm,xm);%横坐标向量

y=linspace(-ym,ym);%纵坐标向量

[X,Y]=meshgrid(x,y);%设置坐标网点

R=sqrt(X.^2+Y.^2);%点电荷到场点的距离

U=C0*q./R;%计算电势

u=1e-9:

0.5e-9:

5e-9;%等电势的电势向量

figure%创建图形窗口

contour(X,Y,U,u)%画等高线

holdon%保持图形

plot(0,0,'o','markersize',12)%画点电荷

axisequaltight%使坐标刻度相等

title('单个点电荷的平面电场线与等势线','fontsize',20)%显示标题

xlabel('r','fontsize',16)%显示横坐标

ylabel('E(U)','fontsize',16)%显示纵坐标

2.画一对点电荷对的电场线和等势线

clear%清除变量

E0=8.85e-12;%真空电介质常数

C0=1/4/pi/E0;%归并常数

q=1.6*10^(-19);%元电荷电量

a=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-1).^2+Y.^2);%第二个正电荷到场点的距离

U=C0*q./R1+C0*q./R2;%计算电势

u=1e-9:

0.5e-9:

5e-9;%等电势的电势向量

figure%创建图形窗口

contour(X,Y,U,u)画等势线

gridon%加网格

legend(num2str(u'))%图例

holdon%保持图像

plot(-1,0,'o','markersize',12)%画第一个正电荷

plot(1,0,'o','markersize',12)%画第二个正电荷

axisequaltight%使坐标刻度相等

title('等量同号点电荷的电场线和等势线','fontsize',20)%显示标题

xlabel('r','fontsize',16)%显示横坐标

ylabel('E(U)','fontsize',16)%显示纵坐标

txt=['µçºÉ±È:

\itQ\rm_2/\itQ\rm_1='num2str(a)];%电荷比文本

text(-xm,-ym-0.3,txt,'fontsize',16)%显示电荷比

 

下列的例子可以说明利用元素群运算的优越性。

例如,要求列出一个三角函数表。

这在MATLAB中只要一下两个语句

键入x=[0:

0.1:

pi/4]’;[x,sin(x),cos(x),tan(x)]

第一条语句把数组x赋值,经转置后成为一个列向量。

因为sin,cos,tan函数都对元素群有效,得出的都是同阶的列向量。

第二条语句把4个列向量组成一个矩阵,进行显示。

得001.00000

0.10000.09980.99500.1003

0.20000.19870.98010.2027

0.30000.29550.95530.3093

0.40000.38940.92110.4228

0.50000.47940.87760.5463

0.60000.56460.82530.6841

0.70000.64420.76480.8432

第一列是x,以下各列依次是sin(x),cos(x),tan(x)。

for语句

for语句的结构形式为

fork=初值:

增量:

终值语句组A,end

即它把语句组A反复执行N次。

在每次执行时程序中k值不同。

可以算出循环次数为N=1+(终值—初值)/增量

用for语句求三角函数表的程序为

forx=0:

0.1:

pi/4

disp([x,sin(x),cos(x),tan(x)]);

end

所得结果将和上个例题中的答案相同。

可以看出,MATLAB的元素群运算功能与一个for循环相当,由于它不需要每次检验表达式,运算速度比for语句快得多。

for语句可以嵌套使用。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2