ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:120.36KB ,
资源ID:9364380      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9364380.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MATLAB电磁场实验指导书.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

MATLAB电磁场实验指导书.docx

1、MATLAB电磁场实验指导书电磁场实验仿真指导书1、Matlab 基础2、实验内容 2.1 预习 点电荷电场分布 2.2 实验一 电偶极子电场分布仿真 2.3 实验二 特殊边界条件的电场分布 2.4 实验三 直导线的磁场分布 2.5 实验四 磁偶极子的磁场分布1 MATLAB 基础1.1 简介MATLAB是一门计算机程序语言,取名源于Matrix Laboratory,意在以矩阵方式处理数据。一般认为MATLAB的典型应用包括:数值计算与分析、符号运算、建模与仿真、数据可视化、图形处理及可视化、基于图形用户界面的应用程序开发。MATLAB7.3.0启动后界面如图1所示。图1 MATLAB7.3

2、.0启动后界面命令窗口(Command Window):(1) 用于执行MATLAB命令,正常情况下提示符为“”,表示MATLAB进入工作状态。(2) 在提示符后输入运算指令和函数调用等命令(不带“;”),MATLAB将迅速显示出结果并再次进入准备工作状态。(3) 若命令后带有“;”,MATLAB执行命令后不显示结果。(4) 在准备工作状态下,如果按上下键,MATLAB会按顺序依次显示以前输入的命令,若要执行它,则直接回车即可。工作空间(Workspace): (1) 显示计算机内存中现有变量的名称、类型、结构及其占用子节数等。(2) 如果直接双击某变量,则弹出Array Editor窗口供用

3、户查看及修改变量内容。(3) 该窗口上有工具条支持用户将某变量存储到文件中或者从文件中载入某变量。命令历史记录(Command History):(1) 保存并显示用户在命令窗口中输入过的命令,以及每次启动MATLAB的时间等信息。 (2) 若双击某条命令记录,则MATLAB会再次执行该命令。当前路径窗口(Current Directory): (1) 先是当前路径内的所有文件。(2) 用户可以在这里新建或删除一个文件,也可以双击一个文件,在编辑/调试窗口中打开。设置当前路径(Current Directory): (1) 用于选择当前工作路径。 (2) 可以在命令窗口中输入文件名来直接调用工

4、作路径下的文件。 使用MATLAB时获取帮助的两种方法:一是直接在命令窗口中输入help 函数名或命令;二是在帮助窗口中浏览或搜索相应信息。还可以参考MATLAB的Demo程序来学习MATLAB编程。1.2 基本语法(一)变量及其赋值1、标识符与数(1)标识符是标识变量名、常量名、函数名和文件名的字符串的总称。在MATLAB中,变量和常量的标志符最长允许19个字符;函数和文件名通常不超过8个字符(受操作系统文件管理器的限制)。这些字符包括全部的英文字母(区分大小写)、阿拉伯数字和下划线等符号。标识符的第一个字符必须是英文字母。 (2)MATLAB中只有双精度一种数据格式,它把简化编程作为主要目

5、标,以运算速度和内存消耗为代价,省去了多种数据格式,唯一采用双精度格式进行数据的存储和运算。虽然它的数据格式只有一种,但是为了人机交互方便,输出显示格式有8种。下表显示了在各格式控制命令下圆周率的显示结果。MATLAB命令显示形式说明format long3.1415926535897916位十进制数format long e3.141592653589793e+00016位十进制数加指数format short(默认)3.1416二位整数,四位小数format short e3.1416e+0005位十进制数加指数format hex400921fb54442d1816位十六进制数forma

6、t bank3.14两位小数format +正、负或零format rat355/113分数近似 MATLAB默认的显示格式是format loose(稀疏格式),屏幕的显示会有很多空行,而如果用显示格式命令format compact(紧凑格式),则会用紧凑格式显示。2、矩阵及其元素的赋值(1)MATLAB中的变量或常量都代表矩阵,标量应看作11阶的矩阵。(2)矩阵的赋值:矩阵的值放在方括号中;一行中各元素之间以逗号或者空格分开,不同的行则以分号隔开;句的结尾可用回车符或逗号,此时会立即显示运算结果。如果不希望显示结果,就以分号结尾。此时运算仍然执行,只是不显示。变量的元素用圆括号“()”中

7、的数字(也称为下标)来注明,一维矩阵(也称为数组或向量)中的元素用一个下标表示,二维的矩阵可有两个下标数,以逗号分开。赋值语句一般形式为:变量=表达式(或数)例如:输入语句a=1 2 3;4 5 6;7 8 9则显示结果为a = 1 2 3 4 5 6 7 8 9 元素可以用表达式代替。如输入x=-1.3 sqrt(3) (1+2+3/5*4)则显示结果为x = -1.3000 1.7321 4.8000可以单独给矩阵的元素赋值。如x(2)=1.7321,a(2,3)=6等。如果赋值元素的下标超出了原来矩阵的大小,矩阵的行列会自动扩展。跳空的元素会被自动赋值为0。如x(5)=abs(x(1)则

8、得x=-1.3000 1.7321 4.8000 0 1.3000又如键入a(4,3)=6.5,则得a = 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 0 0 6.5000给全行赋值,可用冒号。如给a的第5行赋值。键入a(5,:)=5,4,3得a =1.0000 2.0000 3.00004.0000 5.0000 6.00007.0000 8.0000 9.00000 0 6.50005.0000 4.0000 3.0000要取出a的第2、4 行及第1、3列交点上的元素取出,构成一个新矩阵b。可键入b=a(2,

9、4,1,3)得b = 4.0000 6.00000 6.5000要抽除a中的第2、4、5行,可利用空矩阵(指没有元素的矩阵,对任何一个矩阵赋值,就是使它的元素都消失,注意它与“零矩阵”不同)。键入 a(2,4,5,:)=得a =1 2 37 8 9 对于“变量=表达式(或数)”的赋值形式,如果不要等式左端而只剩下右端,则MATLAB会自动给出一个临时变量ans,把右端的结果暂存于ans中。例如键入a/7得ans = 0.1429 0.2857 0.42861.0000 1.1429 1.28573、复数矩阵、运算及其赋值(1)MATLAB的每一个元素都可以是复数,复数的虚数部分用i或j表示,这

10、是在MATLAB启动时就在内部设定的。MATLAB中所有的运算符和函数都对复数有效。例如:键入c=3+5.2i或c=3+5.2j得c = 3.0000 + 5.2000i(2)复数矩阵有两种赋值方法。对复数矩阵的元素逐个赋值。如键入z=1+2i,3+4i;5+6i,7+8i得z = 1.0000 + 2.0000i 3.0000 + 4.0000i 5.0000 + 6.0000i 7.0000 + 8.0000i对其实部矩阵和虚部矩阵分别赋值。如键入z=1,3;5,7+2,4;6,8*i得z = 1.0000 + 2.0000i 3.0000 + 4.0000i 5.0000 + 6.000

11、0i 7.0000 + 8.0000i注意:只有数字与i的乘积可以省略乘号,在上述矩阵式中若省略乘号*,就会出错。 如果在前面程序中曾给i或j赋过其他值,则i或j已不是虚数符号,那么这些虚数赋值语句就不对了。此时应键入clear i, j,即把原赋的i,j清掉,然后再执行复数赋值语句。(3)复数矩阵的转置、共轭运算函数conj对矩阵的每个元素求共轭,即把各元素的虚部反号。运算符 对矩阵作共轭和转置,即把其行列互换,同时把各元素的虚部反号。因此,如果只求转置而不要共轭,就把conj和 结合起来使用。例如键入w=z,u=conj(z),v=conj(z)得w = 1.0000 - 2.0000i

12、5.0000 - 6.0000i 3.0000 - 4.0000i 7.0000 - 8.0000iu = 1.0000 - 2.0000i 3.0000 - 4.0000i 5.0000 - 6.0000i 7.0000 - 8.0000iv = 1.0000 + 2.0000i 5.0000 + 6.0000i 3.0000 + 4.0000i 7.0000 + 8.0000i4、基本矩阵单位矩阵eye(n)是nn阶的方阵,其对角线上的元素为1,其余元素均等于0。全0矩阵zeros(m,n)是mn的所有元素均为0的矩阵。全1矩阵ones(m,n)是mn的所有元素均为1的矩阵。均分向量lin

13、space(a,b,n)是在a与b之间均匀地产生n个点值,形成n维向量。如:键入f1=ones(3,2),f2=zeros(2,3),f3=eye(2)得f1 = 1 1 1 1 1 1f2 = 0 0 0 0 0 0f3 = 1 0 0 1键入f4=linspace(0,1,5)得f4 = 0 0.2500 0.5000 0.7500 1.0000大矩阵可由小矩阵组成,但必须其行列数正确,恰好填满全部元素。如键入f5=1 1 1;2 2 2;3 3 3得f5 = 1 1 1 2 2 2 3 3 3则键入fb=f1,f5;f3,f2可得fb = 1 1 1 1 1 1 1 2 2 2 1 1

14、3 3 3 1 0 0 0 0 0 1 0 0 0(二)矩阵的初等运算1、矩阵的加减乘法(1)矩阵加减法两矩阵相加(减)就是其对应元素的相加(减),通过+、-运算符实现,要求相加(减)的两个矩阵的结构必须相同。用MATLAB的size语句来检查结构是否相同。例如:键入 m,n=size(fb)得m = 5n = 5当两个矩阵相加(减)时,如果有一个是标量,则MATLAB承认算式有效,并自动将该标量扩展成同结构的等元素矩阵,再进行加(减)运算。例如:键入x=-1 0 1;y=x-1得y =-2 -1 0 对于一维矩阵(数组),可以用length语句来求其长度,它不区分列或行,只有一个输出量,而s

15、ize有两个输出量,所以,作加减法的结构检验时只能用size。(2)矩阵乘法np的矩阵A与pm的矩阵B的乘积C是一个nm的矩阵,通过运算符*实现。p是A矩阵的列数,也是B矩阵的行数,称为这两个相乘矩阵的内阶数,这里要注意,两矩阵相乘的必要条件是它们的内阶数相等。 如果两个相乘的矩阵有一个是标量,则MATLAB不检查其内阶数,而用该标量乘以矩阵的每个元素。 若把y转置,即y为31的矩阵,而x是13的矩阵,则x*y的内阶数相等为3键入x*y得ans=2该式子称为x左乘y。如果使x右乘y,则y*x内阶数为1,键入y*x得ans = 2 0 -2 1 0 -1 0 0 0所以要注意左乘与右乘结果一般不

16、同,只有单位矩阵例外,单位矩阵乘以任何矩阵,无论左乘还是右乘,其乘积仍等于该矩阵,但要保证单位矩阵的阶数与相乘矩阵的阶数相等。即eye(n)*A=AA*eye(n)=A2、矩阵除法及线性方程组的解(1)线性代数中没有除法,只有逆矩阵,矩阵的除法是MATLAB从逆矩阵的概念引伸来的。有左除和右除两种情况。 B左除矩阵D相当于矩阵B左乘矩阵D的逆矩阵,记作DB。左除条件是:两矩阵的行数必须相等。(D*X=B,X=D-1*B=DB,可见需要D与B的行数相等) B右除矩阵D相当于矩阵B右乘矩阵D的逆矩阵,记作B/D。右除条件是:两矩阵的列数必须相等。(X*D=B,X=B*D-1=B/D,可见需要D与B

17、的列数相等)(2)矩阵除法可以用来方便地解线性方程组。例如要求下列方程组的解x=x1;x2;x3。 6 x1+3x2+4 x3=3 -2x1+5x2+7x3=-4 8x1-4x2-3 x3=-7此方程组可以写成矩阵形式Ax=B,求解的MATLAB程序为A=6 3 4;-2 5 7;8 -4 -3; B=3;-4;-7; x=AB得x = 0.6000 7.0000 -5.4000下面来看矩阵左右乘除的一些示例。设A=1 2 3;4 5 6,B=2 4 0;1 3 5,D=1 4 7;8 5 2;3 6 0,即A = 1 2 3 4 5 6B = 2 4 0 1 3 5D = 1 4 7 8 5

18、 2 3 6 0则其乘除的结果见下表。算 式结 果A*B? Error using = *Inner matrix dimensions must agree.(内阶数必须相等) A*B 6 16 20 9 23 25 12 30 30A*B 10 22 28 49DA? Error using = Matrix dimensions must agree.(行数必须相等)DA -0.0370 0 0.5185 1.0000 -0.1481 0A/D 0.4074 0.0741 0.0000 0.7407 0.4074 0.00003、矩阵的乘方和幂次函数 MATLAB中只有运算符*、/、和指

19、数函数expm、对数函数logm、开方函数sqitm是把矩阵作为一个整体来运算的,其他所有的MATLAB函数都是对矩阵中的元素分别进行运算的,称为“元素群运算”,将在后面讨论。 (1)幂次运算时,指数和底数不能同时为矩阵,或者说指数和底数至少一个必须为标量; (2)指数或底数为矩阵时,必须是方阵,以保证矩阵相乘的内阶数相等; (3)注意:sqrtm、expm、logm都是针对矩阵的运算,而sqrt、exp、log是针对矩阵元素的群运算,不要混淆。下面来看一些矩阵运算的示例,其中D=1 4 7;8 5 2;3 6 0,s=1 2;3 4即D = 1 4 7 8 5 2 3 6 0s = 1 2

20、3 4键入语句输出结果说明D2 54 66 15 54 69 66 51 42 33按矩阵运算2.D 2 16 128 256 32 4 8 64 1按元素群运算Ds? Error using = At least one operand must be scalar.底数和指数不能同时为矩阵u1=sqrtm(s) 0.5537 + 0.4644i 0.8070 - 0.2124i 1.2104 - 0.3186i 1.7641 + 0.1458i按矩阵运算u1*u1=s检验u2=sqrt(s) 1.0000 1.4142 1.7321 2.0000按元素群运算u2*u2s, u2.*u2=s

21、v1=expm(s) 51.9690 74.7366 112.1048 164.0738按矩阵运算logm(v1)=sv2=exp(s) 2.7183 7.3891 20.0855 54.5982按元素群运算log(v1)=slogm(D) 1.2447 -0.9170 2.8255 1.6044 2.5760 -1.9132 -0.7539 1.1372 1.6724按矩阵运算log(D) 0 1.3863 1.9459 2.0794 1.6094 0.6931 1.0986 1.7918 -Inf按元素群运算4、矩阵结构形式的提取与变换设矩阵A=8 1 6 0;3 5 7 1;4 9 2

22、2即A = 8 1 6 0 3 5 7 1 4 9 2 2函数名功能语句结果fliplr矩阵左右翻转B=fliplr(A) 0 6 1 8 1 7 5 3 2 2 9 4flipud矩阵上下翻转B=flipud(A) 4 9 2 2 3 5 7 1 8 1 6 0reshape阶数重组(元素总数不变)B=reshape(A,2,6) 8 4 5 6 2 1 3 1 9 7 0 2tril取矩阵的左下三角部分B=tril(A) 8 0 0 0 3 5 0 0 4 9 2 0triu取矩阵的右上三角部分B=triu(A) 8 1 6 0 0 5 7 1 0 0 2 2:将元素按列取出排成一排B=A

23、(:)B =8 3 4 1 5 9 6 7 2 0 1 2(三)元素群运算1、数组及其赋值数组通常是指单行或单列的矩阵。MATLAB提供两种为等间隔数组赋值的简易方法。 (1)用两个冒号组成等增量语句,其格式为:t=初值:增量:终值或者t=初值:增量:终值。如:键入 t=0:0.02:1或t=0:0.02:1得t = 0 0.2000 0.4000 0.6000 0.8000 1.0000键入 t=10:-3:-5或t=10:-3:-5得t = 10 7 4 1 -2 -5当增量为1时,该增量可以略去不写,变成t=初值:终值或t=初值:终值。如键入 t=1:6或者t=1:6t = 1 2 3

24、4 5 6 (2)用linspace函数。调用格式为:linspace(初值,终值,点数)。如:键入 linspace(1 10 10)得ans = 1 2 3 4 5 6 7 8 9 10即将1到10之间等分为10个点,或者说等分为9份。2、元素群的四则运算和幂次运算 元素群运算也就是矩阵中所有元素按照单个元素进行运算。在运算符*、/、前加上一个点符号“.”,就表示做元素群运算。参与元素群运算的两个矩阵必须是同阶的(只有标量除外,它会自动扩展为同阶矩阵参与运算)。设X=1,2,3;Y=4,5,6运 算 式输 出 结 果Z=X.*YZ = 4 10 18Z=X.YZ = 4.0000 2.50

25、00 2.0000Z=X.YZ = 1 32 729Z=X.2Z = 1 4 9Z=2.X YZ = 2 4 8 16 32 64(四)运算符MATLAB中的数学运算符名 称说 明名 称说 明+ -矩阵加,矩阵减*矩阵乘/ 矩阵右除,矩阵左除矩阵求幂.* .群乘,群求幂./ .数组右除,数组左除 . 共轭转置,转置=赋值MATLAB中的比较和逻辑运算符名 称说 明名 称说 明=等于=不等于 =大于,大于等于 =小于,小于等于&与|或非xor(a,b)a和b异或any(a)a中有元素非零则为真all(a)a中所有元素都非零则为真1.3 M文件及程序调试一、主程序文件1、格式及要求(1)程序开头最

26、开始一般是注释行,说明程序用途、对输入数据的要求等。注释行必须以%开始,表明是注释行而不是命令行,计算机不会处理以%开头的任何内容。当然,在命令行后也可以%引导注释语句;注释可以用汉字。MATLAB规定,在键入“help 文件名”时,屏幕上会将该文件中以%起头的最前面几行的内容显示出来,使用户知道如何使用。程序命令部分以clear、close all等语句开始,用来清除掉工作空间中原有的变量和图形,避免其他已执行的程序残留数据对本程序的影响。CLEAR removes all variables from the workspace.CLOSE ALL closes all the open

27、figure windows.(2)程序主体如果文件中有在子程序中与主程序共用的全局变量,应在程序的起始部分注明。其语句是: global 变量名1 变量名2 为改善可读性,应注意流程控制语句的缩进及与end的对应关系。程序中必须都用半角英文字母和符号(只有引号括住的部分和%号后的内容可用汉字),否则程序执行不通甚至会死机,因此一般在键入程序时,最好从头到尾用英文,在程序调试完毕后再插入汉字。(3)文件名及文件存储按照MATLAB标志符要求起文件名,并加上后缀m。文件名即为MATLAB的调用命令。文件名中不允许用汉字。存储目录应位于MATLAB的搜索路径下。MATLAB的搜索路径不应出现汉字路

28、径名。(4)程序执行完成主程序文件编制后,在MATLAB的命令窗中键入此程序的文件名后,系统就会执行文件中的程序,主程序文件中的语句将对工作空间中的所有数据进行运算操作。2、示例列出求素数的程序。素数即为只能被它自身和1除净的数。程序如下:%求素数(prime number)的程序clear,close all %清除工作空间中原有的变量和图形N=input(N=),x=2:N; %列出从2到N的全部自然数for u=2:sqrt(N) %依次列出除数(最大到N的平方根) n=find(rem(x,u)=0 & x=u); %找到能被u除净而u不等于x的数的序号x(n)=; %剔除该数end,

29、x %循环结束,显示结果以prime.m为名存入系统即可执行。给出N=40,结果为x=2 3 5 7 11 13 17 19 23 29 31 373、常用的人机交互命令 在执行主程序文件时,往往希望在适当的地方对程序的运行进行观察或者干预(尤其在调试程序的时候),这时就需要人机交互命令。介绍常用的下面几条:(1)input(提示符) 程序执行到此处暂停,在屏幕上显示引号中的字符串。要求用户输入数据。如程序为X=input(X=),则会在屏幕上显示X=,输入的数据将赋给X。数据输入后,程序继续运行。Input命令也可以接受字符,其格式为Y=input(提示符,s),此时Y将等于输入的字符串。(2)pause(n) 程序执行到此处,暂停n秒,再继续执行。如果没有括号参数,则等待用户键入任意键后才继续执行。(3)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1