利用MATLAB模拟点电荷电势的分布
一、原理
根据库仑定律:在真空中,两个静止点电荷之间的作用力与这两个电荷的电量乘积成正比,与它们之间距离的平方成反比,作用力的方向在两个电荷的连线上,两电荷同号为斥力,异号为吸引力,它们之间的力满足:(式1)
由电场强度的定义可知:(式2)
对于点电荷,根据场论基础中的定义,有势场的势函数为(式3)
在MATLAB中,由以上公式算出各点的电势,可以用MATLAB自带的库函数绘出相应的电势分布情况。
二、MATLAB基本语法
(一)标识符与数
标识符是标志变量名、常量名、函数名和文件名的字符串的总称。
(二)矩阵及其元素的赋值
赋值就是把数赋予代表常量或变量的标识符。MATLAB中的变量或常量都代表矩阵,标量应看作1×1价的矩阵。赋值语句的一般形式为
变量=表达式(或数)
列如,输入语句
a=[1 2 3;4 5 6;7 8 9]
则显示结果为
a=1 2 3
4 5 6
7 8 9
输入 x=[1 2 3 4 5 6 7 8 9]
结果为
x= 1 2 3 4 5 6 7 8 9
可以看出,矩阵的值放在方括号中,同一行中各元素之间以逗号或空格分开,不同行的元素以分号隔开。语句的结尾可用回车或逗号“,”,此时会立即显示运算结果;如果不希望显示结果,就以分号“;”结尾再回车,此时运算仍然执行,只是不作显示。
变量的元素用圆括号“()”中的数字(也称为下标)来注明,一维矩阵(也称数组)中的元素用一个下标表示,二维矩阵可有两个下标数,以逗号分开。在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 -1 0 1 2 3
当然增量为1时,这个增量值是可以略去的。
(2)linspace函数表述等距离分割,其格式为x=linspace(初值,终值,点数)。例如键入
x=linspace(-3,3,7)
得x=-3 -2 -1 0 1 2 3
在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个列向量组成一个矩阵,进行显示。
得 0 0 1.0000 0
0.1000 0.0998 0.9950 0.1003
0.2000 0.1987 0.9801 0.2027
0.3000 0.2955 0.9553 0.3093
0.4000 0.3894 0.9211 0.4228
0.5000 0.4794 0.8776 0.5463
0.6000 0.5646 0.8253 0.6841
0.7000 0.6442 0.7648 0.8432
第一列是x,以下各列依次是sin(x), cos(x), tan(x)。
for语句
for语句的结构形式为
for k=初值:增量:终值 语句组A,end
即它把语句组A反复执行N次。在每次执行时程序中k值不同。可以算出循环次数为N=1+(终值—初值)/增量
用for 语句求三角函数表的程序为
for x=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 -1 0 1 2 3
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论