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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

第2章 MATLAB的基本功能.docx

1、第2章 MATLAB的基本功能第2章 MATLAB的基本功能2.1 变量和数据操作2.1.1 变量与赋值1变量命名在MATLAB 6.5中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。在MATLAB中,变量名区分字母的大小写。2赋值语句(1) 变量=表达式 (2) 表达式其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。例2-1 计算表达式的值,并显示计算结果。在MATLAB命令窗口输入命令:x=1+2i;y=3-sqrt(17);z=(cos(abs(x+y)-sin(78*pi/180)/(x+abs(y)其中pi和i都是MATLAB预先定义的变量

2、,分别代表代表圆周率和虚数单位。输出结果是:z = -0.3488 + 0.3286i2.1.2 预定义变量 在MATLAB工作空间中,还驻留几个由系统本身定义的变量。例如,用pi表示圆周率的近似值,用i,j表示虚数单位。预定义变量有特定的含义,在使用时,应尽量避免对这些变量重新赋值。2.1.3 内存变量的管理1内存变量的删除与修改MATLAB工作空间窗口专门用于内存变量的管理。在工作空间窗口中可以显示所有内存变量的属性。当选中某些变量后,再单击Delete按钮,就能删除这些变量。当选中某些变量后,再单击Open按钮,将进入变量编辑器。通过变量编辑器可以直接观察变量中的具体元素,也可修改变量中

3、的具体元素。clear命令用于删除MATLAB工作空间中的变量。who和whos这两个命令用于显示在MATLAB工作空间中已经驻留的变量名清单。who命令只显示出驻留变量的名称,whos在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息。2内存变量文件利用MAT文件可以把当前MATLAB工作空间中的一些有用变量长久地保留下来,扩展名是.mat。MAT文件的生成和装入由save和load命令来完成。常用格式为:save 文件名 变量名表 -append-asciiload 文件名 变量名表 -ascii其中,文件名可以带路径,但不需带扩展名.mat,命令隐含一定对.mat文件进行操

4、作。变量名表中的变量个数不限,只要内存或文件中存在即可,变量名之间以空格分隔。当变量名表省略时,保存或装入全部变量。-ascii选项使文件以ASCII格式处理,省略该选项时文件将以二进制格式处理。save命令中的-append选项控制将变量追加到MAT文件中。2.2 数值计算功能MATLAB 以矩阵为基本的运算单元,向量和标量作为特殊的矩阵处理:向量看作只有一行或一列的矩阵;标量看作只有一个元素的矩阵。2.2.1 创建数值矩阵1直接输入法 直接输入需遵循以下基本规则: 整个矩阵应以“ ”为首尾,即整个输入矩阵必须包含在方括号中; 矩阵中,行与行之间必须用分号“ ;”或 Enter 键( 按 E

5、nter 键)符分隔; 每行中的元素用逗号“ ,”或空格分隔; 矩阵中的元素可以是数字或表达式,但表达式中不可包含未知的变量,MATLAB用表达式的值为该位置的矩阵元素赋值。当矩阵中没有任何元素时,该矩阵被称作“ 空阵”( Empty Matrix)。 A=1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16A = 1 2 3 4 5 6 7 8 9 10 11 1213 14 15 16 B=1,sqrt(25),9,132,6,10,7*23+sin(pi),7,11,154,abs(-8),12,16B = 1 5 9 13 2 6 10 14 3 7 11 15

6、 4 8 12 162用函数创建 在MATLAB中还提供一些函数用来构造特殊矩阵,这些函数如下表所示。 % ones 生成全部元素为 1 的矩阵 ones(3,4) ans = 1 1 1 1 1 1 1 1 1 1 1 1 F=5*ones(3)F = 5 5 5 5 5 5 5 5 5% zeros 生成全部元素为0的矩阵 Z=zeros(2,4)Z = 0 0 0 0 0 0 0 0% rand 生成均匀分布的随机矩阵 R=rand(4) R = 0.9501 0.8913 0.8214 0.9218 0.2311 0.7621 0.4447 0.7382 0.6068 0.4565 0

7、.6154 0.1763 0.4860 0.0185 0.7919 0.40573利用M文件建立矩阵对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。下面通过一个简单例子来说明如何利用M文件创建矩阵。A=1,2,3,4,5 6,7,8,9,10 11,12,13,14,1516,17,18,19,20 21,22,23,24,25(1)启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵:(2) 把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。(3) 在MATLAB命令窗口中输入mymatrix,即运行该M文件,就会自动建立一个名为MYMAT的矩阵,可供以后使用。4.

8、 向量的构造方法 向量是组成矩阵的基本元素之一。向量元素需要用方括号括起来。元素之间用空格和逗号分隔生成行向量,用分号隔开生成列向量。可以把行向量看成1n 阶矩阵,把列向量看成n1 阶矩阵。(1)直接输入法向量元素用“ ”括起来,元素之间用空格、逗号或者分号相隔。需要注意的是,用它们相隔生成的向量形式是不相同的:用空格或逗号生成行向量;用分号生成列向量。 a2=15,21,27,93,101 a1=15;21;27;93;101 (2)利用 冒号(:)生成行向量当向量的元素过多,同时向量各元素有等差的规律,此时采用直接输入法将过于繁琐。针对该种情况 ,可以使用冒号(:) 来生成等差元素向量。即

9、:e1:e2:e3,其中e1,e3为上下界,e2为步长,e2省略是默认为1 x=0:0.5:2x = 0 0.5000 1.0000 1.5000 2.0000 y=2:6y = 2 3 4 5 6(3)利用 linspace/logspace 生成向量其调用格式为:linspace(a,b,n)其中a和b是生成向量的第一个和最后一个元素,n是元素总数。logspace(a,b,n) 生成有 n 个元素的行向量 ,其元素起点 x(1)=10a,终点 x(n)=10b。 a= linspace(-6,6,4)a = -6 -2 2 6 b=logspace(0,2,4)b = 1.0000 4.

10、6416 21.5443 100.00002.2.2 矩阵下标引用 本小节将介绍通过矩阵下标来存取元素值的方法,包括访问单个元素、线性引用元素和访问多个元素等。 1访问单个元素 2线性引用元素 对于矩阵A,线性引用元素的格式为 A(k)。通常这样的引用用于行向量或列 向量,但也可用于二维矩阵。 MATLAB按列优先排列的一个长列向量格式(线性引用元素)来存储矩阵元素。k为矩阵元素的序号 显然,序号(Index)与下标(Subscript )是一一对应的,以mn矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。其相互转换关系也可利用sub2ind和ind2sub函数求得3访问多个元素

11、操作符“:”可以用来表示矩阵的多个元素。若A是二维矩阵,其主要用法如下: A(:,:) 返回矩阵A的所有元素。 A(i,:) 返回矩阵A第i行的所有元素。 A(i,k1:k2) 返回矩阵A第i行的自k1到k2 列的所有元素。 A(:,j) 返回矩阵A第j列的所有元素。 A(k1:k2,j) 返回矩阵A第j列的自k1到k2 行的所有元素。 若A是多维矩阵,也可以通过类似的方法实现对其访问。 4 利用空矩阵删除矩阵的元素要删除矩阵的某一行或者是某一列,只需将该行或者该列赋予一个空矩阵即可。 2.2.3 矩阵运算 1. 矩阵的基本运算矩阵的基本算术运算有:(加)、(减)、*(乘)、/(右除)、(左除

12、)、(乘方)等,算数运算符的用法和功能如下表所示(1) 矩阵加减运算 假定有两个矩阵A和B,则可以由A+B和A-B实现矩阵的加减运算。运算规则是:若A和B矩阵的维数相同,则可以执行矩阵的加减运算,A和B矩阵的相应元素相加减。如果A与B的维数不相同,则MATLAB将给出错误信息,提示用户两个矩阵的维数不匹配。(2) 矩阵乘法 A*B:相乘 假定有两个矩阵A和B,若A为mn矩阵,B为np矩阵,则C=A*B为mp矩阵。 a*A:数乘 标量a和矩阵A中的各元素一一相乘 A=3,8,9;0,3,3;4,8,9A = 3 8 9 0 3 3 4 8 9 2*Aans = 6 16 18 0 6 6 8 1

13、6 18 A.*B:点乘 元素相乘,A.*B相当于A和B对应的元素相乘,A和B必须是具有相同长度的矩阵。 A.*Bans = 24 24 81 0 24 3 12 72 9 A*Bans = 67 154 44 15 51 6 75 157 53(3) 乘方 A.B:元素的乘方 元素的乘方,A和B必须是具有相同长度的矩阵,除非他们之一为标量。一个标量可以与任何一个矩阵乘方,如A2,2A等。 AB:矩阵的乘方 当A和B都为矩阵时,此运算无定义; 当A和B都是标量时,表示标量A的B次幂; 当A是标量且B为矩阵时,表示标量A的中各元素次幂; 当A为方阵且B为正整数时,表示矩阵A的B次乘积; (4 )

14、 矩阵除法在MATLAB中,有两种矩阵除法运算:和/,分别表示左除和右除。如果A矩阵是非奇异方阵,则AB和B/A运算可以实现。AB等效于A矩阵的逆左乘B矩阵,也就是inv(A)*B,而B/A等效于A矩阵的逆右乘B矩阵,也就是B*inv(A)。对于含有标量的运算,两种除法运算的结果相同,如3/4和43有相同的值,都等于0.75。又如,设a=10.5,25,则a/5=5a=2.1000 5.0000。对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于矩阵运算,一般ABB/A。2 矩阵的基本函数MATLAB提供的部分矩阵分析函数如下表所示。(1)向量和矩阵的范数norm()(2)

15、矩阵的秩rank()(3)矩阵的迹trace()(4)矩阵的行列式det()(5)矩阵的特征值与特征向量eig() (1) 向量和矩阵的范数矩阵或向量的范数用来度量矩阵或向量在某种意义下的长度。范数有多种方法定义,其定义不同,范数值也就不同。向量的3种常用范数及其计算函数 在MATLAB中,求向量范数的函数为: norm(V)或norm(V,2):计算向量V的2范数。 norm(V,1):计算向量V的1范数。 norm(V,inf):计算向量V的范数。矩阵的范数及其计算函数与求向量的范数的函数完全相同(2) 矩阵的秩矩阵线性无关的行数与列数称为矩阵的秩。在MATLAB中,求矩阵秩的函数是ran

16、k(A)。(3) 矩阵的迹矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。在MATLAB中,求矩阵的迹的函数是trace(A)。(4) 方阵的行列式把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为矩阵所对应的行列式的值。在MATLAB中,求方阵A所对应的行列式的值的函数是det(A)。(5) 矩阵的特征值与特征向量在MATLAB中,计算矩阵A的特征值和特征向量的函数是eig(A),常用的调用格式有3种: E=eig(A):求矩阵A的全部特征值,构成向量E。 V,D=eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量。 V,D=eig(A,

17、nobalance):与第2种格式类似,但第2种格式中先对A作相似变换后求矩阵A的特征值和特征向量,而格式3直接求矩阵A的特征值和特征向量。2.3 符号计算自然科学理论分析中的公式、关系式及其推导是符号计算要解决的问题。MATLAB数值计算的对象是数值,而符号计算的对象则是非数值的符号字符串。2.3.1 符号对象1. 创建符号对象和表达式2. 符号表达式的运算 MATLAB提供了函数sym()和命令syms创建符号常量、变量、函数以及表达式,函数class()检验符号对象类型。(symbol(符号)缩写)1创建符号对象和表达式 (1)建立符号变量和符号常量 MATLAB提供了两个建立符号对象的

18、函数:sym和syms,两个函数的用法不同。 sym函数 sym函数用来建立单个符号量,一般调用格式为: 符号量名=sym(符号字符串) 该函数可以建立一个符号量,符号字符串可以是常量、变量、函数或表达式。 syms函数 函数sym一次只能定义一个符号变量,使用不方便。 MATLAB提供了另一个函数syms,一次可以定义多个符号变量。syms函数的一般调用格式为: syms 符号变量名1 符号变量名2 符号变量名n 用这种格式定义符号变量时不要在变量名上加字符串分界符(),变量间用空格而不要用逗号分隔。(2) 建立符号表达式 含有符号对象的表达式称为符号表达式。建立符号表达式有以下3种方法:

19、利用单引号来生成符号表达式。 用sym函数建立符号表达式。 使用已经定义的符号变量组成符号表达式。例2.3.1:用上面的三种方法创建符号函数: f=sinx+cos(2x) 3) 创建符号矩阵 直接输入:直接输入符号矩阵时,符号矩阵的每一行都要用方括号括起来,而且要保证同一列的各行元素字符串的长度相等,因此,较短的字符要插入空格来补齐长度,否则程序会报错。例2.3.2: A=cos(x), sin(x), x; -x+1,x2+x+1,tanxA = cos(x), sin(x), x -x+1,x2+x+1,tanx 符号矩阵还可以通过函数sym来生成,符号矩阵中的元素是任何不带等号的符号表

20、达式,各符号表达式的长度可以不同。例2.3.3:syms x; A=sym(cos(x),sin(x),x;-x+1,x2+x+1,tanx) A = cos(x), sin(x), x -x+1, x2+x+1,tanx 2. 符号表达式的运算(1)符号表达式的四则运算 符号表达式的加、减、乘、除运算与矩阵的数值运算一样,用“+”、“-”、“*”,“/”符号来实现,幂运算可以由幂运算符“”来实现。例2.3.4:f=sym(4*x+5); g=sym(2*x2+5*x+6); a=f+g a=9*x+11+2*x2 f2 ans = (4*x+5)22)符号表达式的提取分子和分母运算如果符号表

21、达式是一个有理分式或可以展开为有理分式,可利用numden函数来提取符号表达式中的分子或分母。其一般调用格式为:n,d=numden(s)该函数提取符号表达式s的分子和分母,分别将它们存放在n与d中。例2.3.5: f=sym(a*x2/(b-x); n,d=numden(f) n = a*x2 d = b-x(3) 符号表达式的化简MATLAB提供了符号表达式的因式分解与展开的函数,实现对符号计算的结果的化简和替换,函数的调用格式为:factor(s): 对符号表达式s分解因式。expand(s): 对符号表达式s进行展开。collect(s): 对符号表达式s合并同类项。collect(s

22、,v):对符号表达式s按变量v合并同类项。horner(s): 将符号表达式转换成嵌套形式。simplify(s):应用函数规则对s进行化简。simple(s): 用几种不同的算术简化规则对符号表达式进行简化,并显示中间过程。例2.3.6:符号表达式分解因子syms xf=x12-1;factor(f) 例2.3.7 合并符号表达式的同类项 syms x y collect(x2*y + y*x - x2 - 2*x) ans = (y-1)*x2+(y-2)*x例2.3.8 符号表达式的展开syms x f=(x-1)*(x-2)*(x-3)expand(f)ans =x3 - 6*x2 +

23、 11*x 6 例2.3.9 转换符号表达式为嵌套形式syms x yf=x3-6*x2+11*x-6horner(f)ans =x*(x*(x - 6) + 11) - 6 (4) 符号表达式与数值表达式之间的转换sym:可以将数值表达式变换成它的符号表达式。eval:可以将符号表达式变换成数值表达式。例2.3.10: p=1+sqrt(2)/2; eval(p)ans = 1.7071例2.3.11:p=1.7071;n=sym(p) n = 17071/10000(5) 符号表达式中变量的确定在数学表达式中,一般习惯于用排在字母表前面的字母作为变量系数,而排在字母表后面的字母表示变量。M

24、ATLAB中可以用findsym函数帮助用户查找一个符号表达式中系统默认的符号变量。该函数的调用格式为: findsym(s,n)其中s为用户已经定义符号表达式中,n为正整数,表示查询的符号变量的个数,若没有指定n,则返回s中的全部符号变量。syms a t b g=sin(a*t)+b;findsym(g,1)ans =t (6) 符号表达式的替换 (1) 函数subexpr()将符号表达式中重复出现的字符串用符号变量代替,其具体使用方法如下: Y,SIGMA = subexpr(S,SIGMA):指定用符号变量SIGMA来代替符号表达式中重复出现的字符串; Y,SIGMA = subexp

25、r(S,SIGMA):这种形式和上一种形式的不同在于第2个输入参数是字符或字符串(2)函数subs()用指定符号替换符号表达式中的某一特定符号,其具体使用方法如下:R = subs(S,Old,New):用新符号变量New替代原来符号表达式 S中的变量Old。例2.3.11:g=sym(2*x2+5*x+6);r=subs(g,x,x+1)r = 2*(1+x)2+11+5*x 1 符号表达式的极限A. 符号极限limit函数的调用格式为:(1) limit(f,x,a):求符号函数f(x)的极限值。即计算当变量x趋近于常数a时,f(x)函数的极限值。(2) limit(f,a):求符号函数f

26、(x)的极限值。由于没有指定符号函数f(x)的自变量,则使用该格式时,符号函数f(x)的变量为函数findsym(f)确定的默认自变量,即变量x趋近于a。(3) limit(f):求符号函数f(x)的极限值。符号函数f(x)的变量为函数findsym(f)确定的默认变量;没有指定变量的目标值时,系统默认变量趋近于0,即a=0的情况。(4) limit(f,x,a,right)或limit(f,x,a,left):分别求取符号表达式F的右极限和左极限。例2.3.12 求下列极限。极限1:syms a m x; %定义符号变量f=(x*(exp(sin(x)+1)-2*(exp(tan(x)-1)

27、/(x+a); %定义符号函数limit(f,x,a) %求极限ans =(1/2*a*exp(sin(a)+1/2*a-exp(tan(a)+1)/a极限2:syms x t;limit(1+2*t/x)(3*x),x,inf) % Inf在Matlab里表示无穷大ans =exp(6*t)极限3:syms x;f=x*(sqrt(x2+1)-x);limit(f,x,inf,left)ans =1/2极限4:syms x;f=(sqrt(x)-sqrt(2)-sqrt(x-2)/sqrt(x*x-4);limit(f,x,2,right)ans =-1/22 符号表达式的微分diff(di

28、fferential)函数用于对符号表达式求导数。该函数的一般调用格式为:(1)diff(s):没有指定变量和导数阶数,则系统按findsym函数指示的默认变量对符号表达式s求一阶导数。(2)diff(s,v):以v为自变量,对符号表达式s求一阶导数。(3)diff(s,n):按findsym函数指示的默认变量对符号表达式s求n阶导数,n为正整数。(4)diff(s,v,n):以v为自变量,对符号表达式s求n阶导数。例2.3.13 求函数放f=sin(ax)的导数。具体代码如下: syms a x %定义符号变量 f=sin(a*x); %定义符号表达式 df=diff(f); %对默认变量x

29、求一阶导数 df2=diff(f,2); %对默认变量x求二阶导数运行结果为:df =cos(a*x)*adf2 = -sin(a*x)*a23符号表达式的积分符号积分由函数int来实现。该函数的一般调用格式为:(1)int(s):没有指定积分变量和积分阶数时,系统按 findsym函数指示的默认变量对被积函数或符号表达式s求不定积分。(2)int(s,v):以v为自变量,对被积函数或符号表达式 s求不定积分。(3)int(s,v,a,b):求定积分运算。a,b分别表示定积分的下限和上限。该函数求被积函数在区间a,b上的定积分。 a和b可以是两个具体的数,也可以是一个符号表达式,还可以是无穷(inf)。当函数f关于变量x在闭区间a,b上可积时,函数返回一个定积分结果。当a,b中有一个是inf时,函数返回一个广义积分。当a,b中有一个符号表达式时,函数返回一个符号函数。例 2.3.14 计算函数的积分:syms xr1=int(-2*x/(1+x2)2) %对符号表达式进行不定积分r2=int(-2*x/(1+x2)2,1,2) %对符号表达式进行定积分运行结果r1 =1/(x2 + 1)r2

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

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