《MATLAB操作基础》PPT课件_第1页
《MATLAB操作基础》PPT课件_第2页
《MATLAB操作基础》PPT课件_第3页
《MATLAB操作基础》PPT课件_第4页
《MATLAB操作基础》PPT课件_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-,1,第1章MATLAB操作基础1.1MATLAB概述1.2MATLAB的运行环境与安装1.3MATLAB集成环境1.4MATLAB帮助系统,-,2,1.1MATLAB概述,1.1.1MATLAB的发展1984年,MATLAB第1版(DOS版)1992年,MATLAB4.0版1994年,MATLAB4.2版1997年,MATLAB5.0版1999年,MATLAB5.3版2000年,MATLAB6.0版2001年,MATLAB6.1版2002年,MATLAB6.5版2004年,MATLAB7.0版此后,每半年出一个版本作为对上一个版本的修订。,-,3,1.1.2MATLAB的主要功能1数值计算和符号计算功能MATLAB以矩阵作为数据操作的基本单位,还提供了十分丰富的数值计算函数。MATLAB和著名的符号计算语言Maple相结合,使得MATLAB具有符号计算功能。2绘图功能MATLAB提供了两个层次的绘图操作:一种是对图形句柄进行的低层绘图操作,另一种是建立在低层绘图操作之上的高层绘图操作。,-,4,3编程语言MATLAB具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。4MATLAB工具箱MATLAB包含两部分内容:基本部分和各种可选的工具箱。MATLAB工具箱分为两大类:功能性工具箱和学科性工具箱。,-,5,1.1.3初识MATLAB例1-1绘制正弦曲线和余弦曲线。程序如下:x=0:0.5:360*pi/180;plot(x,sin(x),x,cos(x);例1-2求方程3x4+7x3+9x2-23=0的全部根。程序设计:p=3,7,9,0,-23;%建立多项式系数向量x=roots(p)%求根,-,6,例1-3求积分程序如下:quad(x.*log(1+x),0,1)例1-4求解线性方程组。程序如下:a=2,-3,1;8,3,2;45,1,-9;b=4;2;17;x=inv(a)*b,-,7,例1-5用克莱姆(Cramer)方法求解线性方程组:程序如下:(展示矩阵块操作)D=2,2,-1,1;4,3,-1,2;8,5,-3,4;3,3,-2,2;%定义系数矩阵b=4;6;12;6;%定义常数项向量D1=b,D(:,2:4);%用方程组的右端向量置换D的第1列D2=D(:,1:1),b,D(:,3:4);%用方程组的右端向量置换D的第2列D3=D(:,1:2),b,D(:,4:4);%用方程组的右端向量置换D的第3列D4=D(:,1:3),b;%用方程组的右端向量置换D的第4列DD=det(D);x1=det(D1)/DD;x2=det(D2)/DD;x3=det(D3)/DD;x4=det(D4)/DD;x1,x2,x3,x4,-,8,例1-6根据数据(0.5,1.75),(1,2.45),(1.5,3.81),(2,4.8),(2.5,7),(3,8.6)拟合二次多项式比较拟合效果,并插值求出x=1.75时y?程序如下:x=0.5:0.5:3;%给出数据点x的值y=1.75,2.45,3.81,4.8,7,8.6;%给出数据点y的值p=polyfit(x,y,2);%求出2次拟和多项式的系数f=poly2sym(p)%显示所拟合得到的多项式x1=0.5:0.05:3;%给出x在0.53之间的离散值y1=polyval(p,x1);%求出f在x1上的值plot(x,y,r*,x1,y1,b-)%比较拟合曲线效y=interp1(x,y,1.75)%一维线性插值,-,9,例1-7因式分解:求:化简:程序如下:symsaxfactor(a*(sin(x)2-(2*a2-a+1)*sin(x)+2*a-1)symsknsymsum(sin(k*pi),k,1,n)symsxf=simple(1/x3+6/x2+12/x+8)(1/3)simple(f),-,10,例1-8用不同线型和颜色在同一坐标内绘制曲线y=2e-0.5xsin(2x)及其包络线。程序如下:x=(0:pi/100:2*pi);y1=2*exp(-0.5*x)*1,-1;y2=2*exp(-0.5*x).*sin(2*pi*x);x1=(0:12)/2;y3=2*exp(-0.5*x1).*sin(2*pi*x1);plot(x,y1,g:,x,y2,b-,x1,y3,rp);,-,11,例1-9在一个图形窗口中以子图形式同时绘制正弦、余弦、正切、余切曲线。程序如下:x=linspace(0,2*pi,60);y=sin(x);z=cos(x);t=sin(x)./(cos(x)+eps);ct=cos(x)./(sin(x)+eps);subplot(2,2,1);plot(x,y);title(sin(x);axis(0,2*pi,-1,1);subplot(2,2,2);plot(x,z);title(cos(x);axis(0,2*pi,-1,1);subplot(2,2,3);plot(x,t);title(tangent(x);axis(0,2*pi,-40,40);subplot(2,2,4);plot(x,ct);title(cotangent(x);axis(0,2*pi,-40,40);,-,12,例1-10用三维曲面图表现函数z=sin(y)cos(x)。程序1:x=0:0.1:2*pi;x,y=meshgrid(x);z=sin(y).*cos(x);mesh(x,y,z);xlabel(x-axis),ylabel(y-axis),zlabel(z-axis);title(mesh);程序2:x=0:0.1:2*pi;x,y=meshgrid(x);z=sin(y).*cos(x);surf(x,y,z);xlabel(x-axis),ylabel(y-axis),zlabel(z-axis);title(surf);程序3:x=0:0.1:2*pi;x,y=meshgrid(x);z=sin(y).*cos(x);plot3(x,y,z);xlabel(x-axis),ylabel(y-axis),zlabel(z-axis);title(plot3-1);grid;,-,13,例1-11求函数和的复合函数;求极限,;求对x的二阶导数。程序如下:symsxyf=sin(x);g=exp(y);compose(f,g)symsxyzaf=x2+y2+z2-a2;diff(f,x,2),symsxthlimit(1+2*t/x)(3*x),x,inf)limit(1/x,x,0,right)limit(1/x,x,0,left)limit(sin(x+h)-sin(x)/h,h,0),-,14,例1-12计算,计算计算,程序如下:fun=inline(3*x.2./(x.3-2*x.2+3);quad(fun,0,2)或者:symsxint(3*x*2/(x3-2*x2+3),0,2)int(3*x*2/(x3-2*x2+3)symsxquad(exp(x.2),0,2)dblquad(y./sin(x)+x.*exp(y),1,3,5,7)symsxyint(int(exp(x2/2)*sin(x2+y),x,-sqrt(1-y2),sqrt(1-y2),y,-1,1),-,15,例1-13求微分方程的通解;求微分方程的特解;求微分方程组的解;程序如下:y=dsolve(Dy-(x2+y2)/x2/2,x)y=dsolve(Dy=2*x*y2,y(0)=1,x)x,y=dsolve(D2x-y,D2y+x,t),-,16,例1-14求解线性方程;解方程;解方程组:以(0,0)为初始点的解。程序如下:A=34,8,4;3,34,3;3,6,8;b=4;6;2;Ab%求(1)的解X=linsolve(A,b)%调用linsolve函数求(1)的解x=solve(1/(x+2)+4*x/(x2-4)=1+2/(x-2),x)首先编写M文件如下:functionF=myfun(x)F=2*x(1)-x(2)-exp(-x(1);-x(1)+2*x(2)-exp(-x(2);在命令窗口中运行:x,fval=fsolve(myfun,00),-,17,例1-15求解线性规划:程序如下:f=-5;-4;-6;A=1-11;324;320;b=204230;lb=zeros(3,1);x=linprog(f,A,b,lb,)fval=f*x,-,18,例1-16求函数在区间(0,1)内的最小值;程序如下:fun=inline(x3+cos(x)+x*log(x)/exp(x);x=fminbnd(fun,0,1)fval=fun(x)例1-17求的最小值;程序如下:fun=inline(2*x(1)3+4*x(1)*x(2)3-10*x(1)*x(2)+x(2)2);x=fminsearch(fun,0,0)y=fun(x),-,19,例1-18求下面问题在初始点(0,1)处的最优解。程序如下:funf=f=x(1)2+x(2)2-x(1)*x(2)-2*x(1)-5*x(2);fung=g=(x(1)-1)2-x(2);-2*x(1)+3*x(2)-6;fun=funf,fung;x0=0,1;options=;x,options=constr(fun,x0,options)fval=options(8),-,20,例1-19求解下面二次规划问题程序如下:H=1-1;-12;f=-2;-6;A=11;-12;21;b=2;2;3;lb=zeros(2,1);x,fval=quadprog(H,f,A,b,lb),-,21,例1-20求下列函数的最大值最小化问题首先建立目标函数文件:functionf=myfun(x)f(1)=2*x(1)2+x(2)2-48*x(1)-40*x(2)+304;f(2)=-x(1)2-3*x(2)2;f(3)=x(1)+3*x(2)-18;f(4)=-x(1)-x(2);f(5)=x(1)+x(2)-8;在命令窗口中输入:x0=0.1,0.1;x,fval=fminimax(myfun,x0),-,22,1.2MATLAB的运行环境与安装,1.2.1MATLAB的运行环境硬件环境:(1)CPU(2)内存(3)硬盘(4)CD-ROM驱动器和鼠标。软件环境:(1)Windows98/NT/2000或WindowsXP(2)其他软件根据需要选用,-,23,1.2.2MATLAB的安装安装MATLAB系统,需运行系统自带的安装程序setup.exe,可以按照安装提示依次操作。,-,24,1.3MATLAB集成环境,1.3.1启动与退出MATLAB集成环境1MATLAB系统的启动(1)使用Windows“开始”菜单。(2)运行MATLAB系统启动程序matlab.exe。(3)利用快捷方式。,-,25,启动MATLAB后,将进入MATLAB集成环境。MATLAB集成环境包括MATLAB主窗口、命令窗口(CommandWindow)、工作空间窗口(Workspace)、命令历史窗口(CommandHistory)、当前目录窗口(CurrentDirectory)和启动平台窗口(LaunchPad)。,-,26,当MATLAB安装完毕并首次启动时,展现在屏幕上的界面为MATLAB的默认界面,如右图所示。,-,27,2MATLAB系统的退出(1)在MATLAB主窗口File菜单中选择ExitMATLAB命令。(2)在MATLAB命令窗口输入Exit或Quit命令。(3)单击MATLAB主窗口的“关闭”按钮。,-,28,1.3.2主窗口MATLAB主窗口是MATLAB的主要工作界面。主窗口除了嵌入一些子窗口外,还主要包括菜单栏和工具栏。1菜单栏在MATLAB6.5主窗口的菜单栏,共包含File、Edit、View、Web、Window和Help6个菜单项。,-,29,(1)File菜单项:File菜单项实现有关文件的操作。(2)Edit菜单项:Edit菜单项用于命令窗口的编辑操作。(3)View菜单项:View菜单项用于设置MATLAB集成环境的显示方式。,-,30,(4)Web菜单项:Web菜单项用于设置MATLAB的Web操作。(5)Window菜单项:主窗口菜单栏上的Window菜单,只包含一个子菜单Closeall,用于关闭所有打开的编辑器窗口,包括M-file、Figure、Model和GUI窗口。(6)Help菜单项:Help菜单项用于提供帮助信息。,-,31,2工具栏MATLAB6.5主窗口的工具栏共提供了10个命令按钮。这些命令按钮均有对应的菜单命令,但比菜单命令使用起来更快捷、方便。,-,32,1.3.3命令窗口1.命令编辑区的作用命令编辑区用于输入命令并显示除图形以外的所有执行结果。2.命令行的输入规则:MATLAB命令窗口中的“”为命令提示符,表示MATLAB正在处于准备状态。在命令提示符后键入命令并按下回车键后,MATLAB就会解释执行.一个命令行输入一条命令,命令行以回车结束。一个命令行也可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。如:p=15,m=35或p=15;m=35,-,33,如果一个命令行很长,一个物理行之内写不下,可以在第一个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。在MATLAB里,有很多的控制键和方向键可用于命令行的编辑。,-,34,1.3.4工作空间窗口工作空间是MATLAB用于存储各种变量和结果的内存空间。在该窗口中显示工作空间中所有变量的名称、大小、字节数和变量类型说明,可对变量进行观察、编辑、保存和删除。,-,35,1.3.5当前目录窗口和搜索路径1当前目录窗口当前目录是指MATLAB运行文件时的工作目录,只有在当前目录或搜索路径下的文件、函数可以被运行或调用。在当前目录窗口中可以显示或改变当前目录,还可以显示当前目录下的文件并提供搜索功能。将用户目录设置成当前目录也可使用cd命令。例如,将用户目录c:mydir设置为当前目录,可在命令窗口输入命令:cdc:mydir,-,36,2MATLAB的搜索路径当用户在MATLAB命令窗口输入一条命令后,MATLAB按照一定次序寻找相关的文件。基本的搜索过程是:(1)检查该命令是不是一个变量。(2)检查该命令是不是一个内部函数。(3)检查该命令是否当前目录下的M文件。(4)检查该命令是否MATLAB搜索路径中其他目录下的M文件。,-,37,用户可以将自己的工作目录列入MATLAB搜索路径,从而将用户目录纳入MATLAB系统统一管理。设置搜索路径的方法有:(1)用path命令设置搜索路径。例如,将用户目录c:mydir加到搜索路径下,可在命令窗口输入命令:path(path,c:mydir),-,38,(2)用对话框设置搜索路径在MATLAB的File菜单中选SetPath命令或在命令窗口执行pathtool命令,将出现搜索路径设置对话框。通过AddFolder或AddwithSubfolder命令按钮将指定路径添加到搜索路径列表中。在修改完搜索路径后,则需要保存搜索路径。,-,39,1.3.6命令历史记录窗口在默认设置下,历史记录窗口中会自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查询。而且,通过双击命令可进行历史命令的再运行。如果要清除这些历史记录,可以选择Edit菜单中的ClearCommandHistory命令。,-,40,1.3.7启动平台窗口和Start按钮MATLAB6.5的启动平台窗口可以帮助用户方便地打开和调用MATLAB的各种程序、函数和帮助文件。MATLAB6.5主窗口左下角还有一个Start按钮,单击该按钮会弹出一个菜单,选择其中的命令可以执行MATLAB产品的各种工具,并且可以查阅MATLAB包含的各种资源。,-,41,1.4MATLAB帮助系统,1.4.1帮助窗口(1)单击MATLAB主窗口工具栏中的Help按钮。(2)在命令窗口中输入helpwin、helpdesk或doc。(3)选择Help菜单中的“MATLABHelp”选项。,-,42,1.4.2帮助命令MATLAB帮助命令包括help、lookfor以及模糊查询。1help命令在MATLAB6.5命令窗口中直接输入help命令将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。同样,可以通过help加函数名来显示该函数的帮助说明。,-,43,2lookfor命令help命令只搜索出那些关键字完全匹配的结果,lookfor命令对搜索范围内的M文件进行关键字搜索,条件比较宽松。lookfor命令只对M文件的第一行进行关键字搜索。若在lookfor命令加上-all选项,则可对M文件进行全文搜索。,-,44,3模糊查询MATLAB6.0以上的版本提供了一种类似模糊查询的命令查询方法,用户只需要输入命令的前几个字母,然后按Tab键,系统就会列出所有以这几个字母开头的命令。,-,45,1.4.3演示系统在帮助窗口中选择演示系统(Demos)选项卡,然后在其中选择相应的演示模块,或者在命令窗口输入Demos,或者选择主窗口Help菜单中的Demos子菜单,打开演示系统。,-,46,1.4.4远程帮助系统在MathWorks公司主页部分国内相关网站:(1)工具箱的应用,-,47,第2章MATLAB矩阵及其运算2.1变量和数据操作2.2MATLAB矩阵2.3MATLAB运算2.4矩阵分析2.5矩阵的超越函数2.6字符串2.7结构数据和单元数据2.8稀疏矩阵,-,48,2.1变量和数据操作,2.1.1变量与赋值1变量命名在MATLAB6.5中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。在MATLAB中,变量名区分字母的大小写。,变量名和文档名都不要以数字开头!,-,49,2赋值语句(1)变量=表达式(指定结果变量)(2)表达式(不指定结果变量)其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。如果不指定结果变量,则将计算结果赋值给ans变量,当有新的结果需要存入ans时,将覆盖掉已经保存的结果。,-,50,例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预先定义的变量,分别代表代表圆周率和虚数单位。输出结果是:z=-0.3488+0.3286i,-,51,2.1.2预定义变量,在MATLAB工作空间中,还驻留几个由系统本身定义的变量。例如,用pi表示圆周率的近似值,用i,j表示虚数单位,用inf表示无穷大。预定义变量有特定的含义,在使用时,应尽量避免对这些变量重新赋值。,-,52,2.1.3内存变量的管理1内存变量的删除与修改MATLAB工作空间窗口专门用于内存变量的管理。在工作空间窗口中可以显示所有内存变量的属性。当选中某些变量后,再单击Delete按钮,就能删除这些变量。当选中某些变量后,再单击Open按钮,将进入变量编辑器。通过变量编辑器可以直接观察变量中的具体元素,也可修改变量中的具体元素。,-,53,clear命令用于删除MATLAB工作空间中的变量。who和whos这两个命令用于显示在MATLAB工作空间中已经驻留的变量名清单。who命令只显示出驻留变量的名称,whos在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息。,-,54,2内存变量文件利用MAT文件可以把当前MATLAB工作空间中的一些有用变量长久地保留下来,扩展名是.mat。MAT文件的生成和装入由save和load命令来完成。常用格式为:save文件名变量名表-append-asciiload文件名变量名表-ascii,-,55,其中,文件名可以带路径,但不需带扩展名.mat,命令隐含一定对.mat文件进行操作。变量名表中的变量个数不限,只要内存或文件中存在即可,变量名之间以空格分隔。当变量名表省略时,保存或装入全部变量。-ascii选项使文件以ASCII格式处理,省略该选项时文件将以二进制格式处理。save命令中的-append选项控制将变量追加到MAT文件中。,-,56,2.1.4MATLAB常用数学函数MATLAB提供了许多数学函数,函数的自变量规定为矩阵变量,运算法则是将函数逐项作用于矩阵的元素上,因而运算的结果是一个与自变量同维数的矩阵。函数使用说明:(1)三角函数以弧度为单位计算。(2)abs函数可以求实数的绝对值、复数的模、字符串的ASCII码值。(3)用于取整的函数有fix、floor、ceil、round,要注意它们的区别。(4)rem与mod函数的区别。rem(x,y)和mod(x,y)要求x,y必须为相同大小的实矩阵或为标量。,向零取整,向下取整,向上取整,四舍五入取整,-,57,2.1.5数据的输出格式MATLAB用十进制数表示一个常数,具体可采用日常记数法和科学记数法两种表示方法。在一般情况下,MATLAB内部每一个数据元素都是用双精度数来表示和存储的。数据输出时用户可以用format命令设置或改变数据输出格式。format命令的格式为:format格式符其中格式符决定数据的输出格式,格式符属性值有:long,short,shorte,longe,shortg,longg,rat,compact,loose,bank等,-,58,2.2MATLAB矩阵,2.2.1矩阵的建立1直接输入法最简单的建立矩阵方法是从键盘直接输入矩阵的元素。具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。,逗号与分号用法的区别:1)输入矩阵时,逗号或空格用于分割同行元素;分号用于换行,用于分割不同行元素;2)用于命令结尾时,使用逗号或不使用任何符号时,运行命令且显示结果;使用分号时,只运行命令但不显示结果。小括号与中括号的区别:1)小括号用于函数的输入,中括号用于矩阵的输入及函数的输出;2)数学运算优先级的限定都使用小括号。,-,59,利用矩阵编辑器建立矩阵对于较大矩阵,在commandwindow中输入变量名,在工作间workspace中找到该变量名并双击即可打开矩阵编辑器,在其中输入或改变元素。(易检验对齐与否)3利用M文件建立矩阵对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。下面通过一个简单例子来说明如何利用M文件创建矩阵。,-,60,例2-2利用M文件建立MYMAT矩阵。(1)启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵:(2)把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。(3)在MATLAB命令窗口中输入mymatrix,即运行该M文件,就会自动建立一个名为MYMAT的矩阵,可供以后使用。,-,61,4利用冒号表达式建立一个向量冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3其中e1为初始值,e2为步长,e3为终止值。(e1,e2,e3均可以为正数、负数、小数)在MATLAB中,还可以用linspace函数产生行向量。其调用格式为:linspace(a,b,n)其中a和b是生成向量的第一个和最后一个元素,n是元素总数。显然,linspace(a,b,n)与a:(b-a)/(n-1):b等价。5建立大矩阵大矩阵可由方括号中的小矩阵或向量建立起来。,-,62,2.2.2矩阵的拆分1矩阵元素通过下标引用矩阵的元素,例如A(3,2)=200采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的排列顺序。在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推。例如A=1,2,3;4,5,6;A(3)ans=2显然,序号(Index)与下标(Subscript)是一一对应的,以mn矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。其相互转换关系也可利用sub2ind和ind2sub函数求得。,-,63,2矩阵拆分(1)利用冒号表达式获得子矩阵A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。A(i:i+m,:)表示取A矩阵第ii+m行的全部元素;A(:,k:k+m)表示取A矩阵第kk+m列的全部元素,A(i:i+m,k:k+m)表示取A矩阵第ii+m行内,并在第kk+m列中的所有元素。此外,还可利用一般向量和end运算符来表示矩阵下标,从而获得子矩阵。end表示某一维的末尾元素下标。,-,64,(2)利用空矩阵删除矩阵的元素在MATLAB中,定义为空矩阵。给变量X赋空矩阵的语句为X=。注意,X=与clearX不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0。,-,65,2.2.3特殊矩阵1通用的特殊矩阵常用的产生通用特殊矩阵的函数有:zeros:产生全0矩阵(零矩阵)。ones:产生全1矩阵(幺矩阵)。eye:产生单位矩阵。rand:产生01间均匀分布的随机矩阵。randn:产生均值为0,方差为1的标准正态分布随机矩阵。,-,66,例2-3分别建立33、32和与矩阵A同样大小的零矩阵。(1)建立一个33零矩阵。zeros(3)(2)建立一个32零矩阵。zeros(3,2)(3)设A为23矩阵,则可以用zeros(size(A)建立一个与矩阵A同样大小零矩阵。A=123;456;%产生一个23阶矩阵Azeros(size(A)%产生一个与矩阵A同样大小的零矩阵,-,67,例2-4建立随机矩阵:(1)在区间20,50内均匀分布的5阶随机矩阵。(2)均值为0.6、方差为0.1的5阶正态分布随机矩阵。命令如下:x=20+(50-20)*rand(5)y=0.6+sqrt(0.1)*randn(5)此外,常用的函数还有reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成mn的二维矩阵。,-,68,2用于专门学科的特殊矩阵(1)魔方矩阵魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由1,2,3,n2共n2个整数组成。MATLAB提供了求魔方矩阵的函数magic(n),其功能是生成一个n阶魔方阵。例2-5将101125等25个数填入一个5行5列的表格中,使其每行每列及对角线的和均为565。M=100+magic(5),-,69,(2)范得蒙矩阵范得蒙(Vandermonde)矩阵最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积。可以用一个指定向量生成一个范得蒙矩阵。在MATLAB中,函数vander(V)生成以向量V为基础向量的范得蒙矩阵。例如,A=vander(1;2;3;5)即可得到上述范得蒙矩阵。,-,70,(3)希尔伯特矩阵在MATLAB中,生成希尔伯特矩阵的函数是hilb(n)。使用一般方法求逆会因为原始数据的微小扰动而产生不可靠的计算结果。MATLAB中,有一个专门求希尔伯特矩阵的逆的函数invhilb(n),其功能是求n阶的希尔伯特矩阵的逆矩阵。,-,71,例2-6求4阶希尔伯特矩阵及其逆矩阵。命令如下:formatrat%以有理形式输出H=hilb(4)H=invhilb(4),-,72,(4)托普利兹矩阵托普利兹(Toeplitz)矩阵除第一行第一列外,其他每个元素都与左上角的元素相同。生成托普利兹矩阵的函数是toeplitz(x,y),它生成一个以x为第一列,y为第一行的托普利兹矩阵。这里x,y均为向量,两者不必等长。toeplitz(x)用向量x生成一个对称的托普利兹矩阵。例如T=toeplitz(1:6),-,73,(5)伴随矩阵MATLAB生成伴随矩阵的函数是compan(p),其中p是一个多项式的系数向量,高次幂系数排在前,低次幂排在后。例如,为了求多项式的x3-7x+6的伴随矩阵,可使用命令:p=1,0,-7,6;compan(p),-,74,(6)帕斯卡矩阵我们知道,二次项展开后的系数随n的增大组成一个三角形表,称为杨辉三角形。由杨辉三角形表组成的矩阵称为帕斯卡(Pascal)矩阵。函数pascal(n)生成一个n阶帕斯卡矩阵。,-,75,例2-7求(x+y)5的展开式。在MATLAB命令窗口,输入命令:pascal(6)矩阵次对角线上的元素1,5,10,10,5,1即为展开式的系数。,-,76,2.3MATLAB运算2.3.1算术运算1基本算术运算MATLAB的基本算术运算有:(加)、(减)、*(乘)、/(右除)、(左除)、(乘方)。注意,运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。,-,77,(1)矩阵加减运算假定有两个矩阵A和B,则可以由A+B和A-B实现矩阵的加减运算。运算规则是:若A和B矩阵的维数相同,则可以执行矩阵的加减运算,A和B矩阵的相应元素相加减。如果A与B的维数不相同,则MATLAB将给出错误信息,提示用户两个矩阵的维数不匹配。,-,78,(2)矩阵乘法假定有两个矩阵A和B,若A为mn矩阵,B为np矩阵,则C=A*B为mp矩阵。,-,79,(3)矩阵除法在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.10005.0000。对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于矩阵运算,一般ABB/A。,-,80,(4)矩阵的乘方一个矩阵的乘方运算可以表示成Ax,要求A为方阵,x为标量。2点运算在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。点运算符有.*、./、.和.。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。,-,81,2.3.2关系运算MATLAB提供了6种关系运算符:(大于)、=(大于或等于)、=(等于)、=(不等于)。它们的含义不难理解,但要注意其书写方法与数学中的不等式符号不尽相同。,-,82,关系运算符的运算法则为:(1)当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为1,否则为0。(2)当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。,-,83,(3)当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。,-,84,例2-8产生5阶随机方阵A,其元素为10,90区间的随机整数,然后判断A的元素是否能被3整除。(1)生成5阶随机方阵A。A=fix(90-10+1)*rand(5)+10)(2)判断A的元素是否可以被3整除。P=rem(A,3)=0其中,rem(A,3)是矩阵A的每个元素除以3的余数矩阵。此时,0被扩展为与A同维数的零矩阵,P是进行等于(=)比较的结果矩阵。,-,85,2.3.3逻辑运算MATLAB提供了3种逻辑运算符:56,0,67,-45,0(2)找出大于4的元素的位置。find(A4),-,88,2.4矩阵分析2.4.1对角阵与三角阵1对角阵只有对角线上有非0元素的矩阵称为对角矩阵,对角线上的元素相等的对角矩阵称为数量矩阵,对角线上的元素都为1的对角矩阵称为单位矩阵。,-,89,(1)提取矩阵的对角线元素设A为mn矩阵,diag(A)函数用于提取矩阵A主对角线元素,产生一个具有min(m,n)个元素的列向量。diag(A)函数还有一种形式diag(A,k),其功能是提取第k条对角线的元素。(2)构造对角矩阵设V为具有m个元素的向量,diag(V)将产生一个mm对角矩阵,其主对角线元素即为向量V的元素。diag(V)函数也有另一种形式diag(V,k),其功能是产生一个nn(n=m+)对角阵,其第k条对角线的元素即为向量V的元素。,-,90,例2-10先建立55矩阵A,然后将A的第一行元素乘以1,第二行乘以2,第五行乘以5。A=17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;.11,18,25,2,19;D=diag(1:5);D*A%用D左乘A,对A的每行乘以一个指定常数,-,91,2三角阵三角阵又进一步分为上三角阵和下三角阵,所谓上三角阵,即矩阵的对角线以下的元素全为0的一种矩阵,而下三角阵则是对角线以上的元素全为0的一种矩阵。,-,92,(1)上三角矩阵求矩阵A的上三角阵的MATLAB函数是triu(A)。triu(A)函数也有另一种形式triu(A,k),其功能是求矩阵A的第k条对角线以上的元素。例如,提取矩阵A的第

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论