您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > MATLAB-电磁场实验指导书
电磁场实验仿真指导书1、Matlab基础2、实验内容2.1预习点电荷电场分布2.2实验一电偶极子电场分布仿真2.3实验二特殊边界条件的电场分布2.4实验三直导线的磁场分布2.5实验四磁偶极子的磁场分布1MATLAB基础1.1简介MATLAB是一门计算机程序语言,取名源于MatrixLaboratory,意在以矩阵方式处理数据。一般认为MATLAB的典型应用包括:数值计算与分析、符号运算、建模与仿真、数据可视化、图形处理及可视化、基于图形用户界面的应用程序开发。MATLAB7.3.0启动后界面如图1所示。图1MATLAB7.3.0启动后界面命令窗口(CommandWindow):(1)用于执行MATLAB命令,正常情况下提示符为“”,表示MATLAB进入工作状态。(2)在提示符后输入运算指令和函数调用等命令(不带“;”),MATLAB将迅速显示出结果并再次进入准备工作状态。(3)若命令后带有“;”,MATLAB执行命令后不显示结果。(4)在准备工作状态下,如果按上下键,MATLAB会按顺序依次显示以前输入的命令,若要执行它,则直接回车即可。工作空间(Workspace):(1)显示计算机内存中现有变量的名称、类型、结构及其占用子节数等。(2)如果直接双击某变量,则弹出ArrayEditor窗口供用户查看及修改变量内容。(3)该窗口上有工具条支持用户将某变量存储到文件中或者从文件中载入某变量。命令历史记录(CommandHistory):(1)保存并显示用户在命令窗口中输入过的命令,以及每次启动MATLAB的时间等信息。(2)若双击某条命令记录,则MATLAB会再次执行该命令。当前路径窗口(CurrentDirectory):(1)先是当前路径内的所有文件。(2)用户可以在这里新建或删除一个文件,也可以双击一个文件,在编辑/调试窗口中打开。设置当前路径(CurrentDirectory):(1)用于选择当前工作路径。(2)可以在命令窗口中输入文件名来直接调用工作路径下的文件。使用MATLAB时获取帮助的两种方法:一是直接在命令窗口中输入help函数名或命令;二是在帮助窗口中浏览或搜索相应信息。还可以参考MATLAB的Demo程序来学习MATLAB编程。1.2基本语法(一)变量及其赋值1、标识符与数(1)标识符是标识变量名、常量名、函数名和文件名的字符串的总称。在MATLAB中,变量和常量的标志符最长允许19个字符;函数和文件名通常不超过8个字符(受操作系统文件管理器的限制)。这些字符包括全部的英文字母(区分大小写)、阿拉伯数字和下划线等符号。标识符的第一个字符必须是英文字母。(2)MATLAB中只有双精度一种数据格式,它把简化编程作为主要目标,以运算速度和内存消耗为代价,省去了多种数据格式,唯一采用双精度格式进行数据的存储和运算。虽然它的数据格式只有一种,但是为了人机交互方便,输出显示格式有8种。下表显示了在各格式控制命令下圆周率∏的显示结果。MATLAB命令显示形式说明formatlong3.1415926535897916位十进制数formatlonge3.141592653589793e+00016位十进制数加指数formatshort(默认)3.1416二位整数,四位小数formatshorte3.1416e+0005位十进制数加指数formathex400921fb54442d1816位十六进制数formatbank3.14两位小数format++正、负或零formatrat355/113分数近似MATLAB默认的显示格式是formatloose(稀疏格式),屏幕的显示会有很多空行,而如果用显示格式命令formatcompact(紧凑格式),则会用紧凑格式显示。2、矩阵及其元素的赋值(1)MATLAB中的变量或常量都代表矩阵,标量应看作1×1阶的矩阵。(2)矩阵的赋值:①矩阵的值放在方括号中;②一行中各元素之间以逗号或者空格分开,不同的行则以分号隔开;③句的结尾可用回车符或逗号,此时会立即显示运算结果。如果不希望显示结果,就以分号结尾。此时运算仍然执行,只是不显示。④变量的元素用圆括号“()”中的数字(也称为下标)来注明,一维矩阵(也称为数组或向量)中的元素用一个下标表示,二维的矩阵可有两个下标数,以逗号分开。赋值语句一般形式为:变量=表达式(或数)例如:输入语句a=[123;456;789]则显示结果为a=123456789元素可以用表达式代替。如输入x=[-1.3sqrt(3)(1+2+3/5*4)]则显示结果为x=-1.30001.73214.8000可以单独给矩阵的元素赋值。如x(2)=1.7321,a(2,3)=6等。如果赋值元素的下标超出了原来矩阵的大小,矩阵的行列会自动扩展。跳空的元素会被自动赋值为0。如x(5)=abs(x(1))则得x=-1.30001.73214.800001.3000又如键入a(4,3)=6.5,则得a=1.00002.00003.00004.00005.00006.00007.00008.00009.0000006.5000给全行赋值,可用冒号。如给a的第5行赋值。键入a(5,:)=[5,4,3]得a=1.00002.00003.00004.00005.00006.00007.00008.00009.0000006.50005.00004.00003.0000要取出a的第2、4行及第1、3列交点上的元素取出,构成一个新矩阵b。可键入b=a([2,4],[1,3])得b=4.00006.000006.5000要抽除a中的第2、4、5行,可利用空矩阵[](指没有元素的矩阵,对任何一个矩阵赋值[],就是使它的元素都消失,注意它与“零矩阵”不同)。键入a([2,4,5],:)=[]得a=123789对于“变量=表达式(或数)”的赋值形式,如果不要等式左端而只剩下右端,则MATLAB会自动给出一个临时变量ans,把右端的结果暂存于ans中。例如键入a/7得ans=0.14290.28570.42861.00001.14291.28573、复数矩阵、运算及其赋值(1)MATLAB的每一个元素都可以是复数,复数的虚数部分用i或j表示,这是在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.0000i3.0000+4.0000i5.0000+6.0000i7.0000+8.0000i对其实部矩阵和虚部矩阵分别赋值。如键入z=[1,3;5,7]+[2,4;6,8]*i得z=1.0000+2.0000i3.0000+4.0000i5.0000+6.0000i7.0000+8.0000i注意:①只有数字与i的乘积可以省略乘号,在上述矩阵式中若省略乘号*,就会出错。②如果在前面程序中曾给i或j赋过其他值,则i或j已不是虚数符号,那么这些虚数赋值语句就不对了。此时应键入cleari,j,即把原赋的i,j清掉,然后再执行复数赋值语句。(3)复数矩阵的转置、共轭运算函数conj对矩阵的每个元素求共轭,即把各元素的虚部反号。运算符'对矩阵作共轭和转置,即把其行列互换,同时把各元素的虚部反号。因此,如果只求转置而不要共轭,就把conj和'结合起来使用。例如键入w=z',u=conj(z),v=conj(z)'得w=1.0000-2.0000i5.0000-6.0000i3.0000-4.0000i7.0000-8.0000iu=1.0000-2.0000i3.0000-4.0000i5.0000-6.0000i7.0000-8.0000iv=1.0000+2.0000i5.0000+6.0000i3.0000+4.0000i7.0000+8.0000i4、基本矩阵单位矩阵eye(n)是n×n阶的方阵,其对角线上的元素为1,其余元素均等于0。全0矩阵zeros(m,n)是m×n的所有元素均为0的矩阵。全1矩阵ones(m,n)是m×n的所有元素均为1的矩阵。均分向量linspace(a,b,n)是在a与b之间均匀地产生n个点值,形成n维向量。如:键入f1=ones(3,2),f2=zeros(2,3),f3=eye(2)得f1=111111f2=000000f3=1001键入f4=linspace(0,1,5)得f4=00.25000.50000.75001.0000大矩阵可由小矩阵组成,但必须其行列数正确,恰好填满全部元素。如键入f5=[111;222;333]得f5=111222333则键入fb=[f1,f5;f3,f2]可得fb=1111111222113331000001000(二)矩阵的初等运算1、矩阵的加减乘法(1)矩阵加减法两矩阵相加(减)就是其对应元素的相加(减),通过+、-运算符实现,要求相加(减)的两个矩阵的结构必须相同。用MATLAB的size语句来检查结构是否相同。例如:键入[m,n]=size(fb)得m=5n=5当两个矩阵相加(减)时,如果有一个是标量,则MATLAB承认算式有效,并自动将该标量扩展成同结构的等元素矩阵,再进行加(减)运算。例如:键入x=[-101];y=x-1得y=-2-10对于一维矩阵(数组),可以用length语句来求其长度,它不区分列或行,只有一个输出量,而size有两个输出量,所以,作加减法的结构检验时只能用size。(2)矩阵乘法n×p的矩阵A与p×m的矩阵B的乘积C是一个n×m的矩阵,通过运算符*实现。p是A矩阵的列数,也是B矩阵的行数,称为这两个相乘矩阵的内阶数,这里要注意,两矩阵相乘的必要条件是它们的内阶数相等。如果两个相乘的矩阵有一个是标量,则MATLAB不检查其内阶数,而用该标量乘以矩阵的每个元素。若把y转置,即y’为3×1的矩阵,而x是1×3的矩阵,则x*y’的内阶数相等为3键入x*y’得ans=2该式子称为x左乘y’。如果使x右乘y’,则y’*x内阶数为1,键入y’*x得ans=20-210-1000所以要注意左乘与右乘结果一般不同,只有单位矩阵例外,单位矩阵乘以任何矩阵,无论左乘还是右乘,其乘积仍等于该矩阵,但要保证单位矩阵的阶数与相乘矩阵的阶数相等。即eye(n)*A=AA*eye(n)=A2、矩阵除法及线性方程组的解(1)线性代数中没有除法,只有逆矩阵,矩阵的除法是MATLAB从逆矩阵的概念引伸来的。有左除和右除两种情况。B左除矩阵D相当于矩阵B左乘矩阵D的逆矩阵,记作D\B。左除条件是:两矩阵的行数必须相等。(D*X=B,X=D-1*B=D\B,可见需要D与B的行数相等)B右除矩阵D相当于矩阵B右乘矩阵D的逆矩阵,记作B/D。右除条件是:两矩阵的列数必须相等。(X*D=B,X=B*D-1=B/D,可见需要D与B的列数相等)(2)矩阵除法可以用来方便地解线性方程组。例如要求下列方程组的解x=[x1;x2;x3]。6x1+3x2+4x3=3-2x1+5x2+7x3=-48x1-4x2-3x3=-7此方程组可以写成矩阵形式Ax=B,求解的MATLAB程序为A=[634;-257;8-4-3];B=[3;-4;-7];x=A\B得x=0.60007.0000-5.4000下面来看矩阵左右乘除的一些示例。设A=[123;456],B=[240;135],D=[147;852;360],即A=123456B=240135D=147852360则其乘除的结果见下表。算式结果A*B???Errorusing==*Innermatrixdimensionsmustagree.(内阶数必须相等)A’*B6162092325123030A*B’10222849D\A???Errorusing==\Matrixdimensionsmustagree.(行数必须相等)D\A’
本文标题:MATLAB-电磁场实验指导书
链接地址:https://www.777doc.com/doc-5860159 .html