收藏 分销(赏)

MATLAB简介.ppt

上传人:pc****0 文档编号:13356636 上传时间:2026-03-06 格式:PPT 页数:39 大小:362.50KB 下载积分:10 金币
下载 相关 举报
MATLAB简介.ppt_第1页
第1页 / 共39页
MATLAB简介.ppt_第2页
第2页 / 共39页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,*,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Matlab,简介,西南交通大学峨眉校区基础课部数学教研室,1,MATLAB,的发展史,MATLAB,名字由,MATrix,和,LABoratory,两词的前三个字母组合而成。那是20世纪七十年代,时任美国新墨西哥大学计算机科学系主任的,Cleve,Moler,出于减轻学生编程负担的动机,为学生设计了一组调用,LINPACK,和,EISPACK,矩阵软件工具包库程序的的“通俗易用”的接口,此即用,FORTRAN,编写的萌芽状态的,MATLAB。,1984年由,Little、Moler、Steve,Bangert,合作成立,MathWorks,公司,并把,MATLAB,正式推向市场。从这时起,,MATLAB,的内核采用,C,语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。,1997年仲春,,MATLAB5.0,版问世,紧接着是5.1、5.2,以及和1999年春的5.3版。现今的,MATLAB,拥有更丰富的数据类型和结构、更友善的面向对象、更加快速精良的图形可视、更广博的数学和数据分析资源、更多的应用开发工具。,前一页,后一页,返回,2,MATLAB,语言的主要特点,(1)具有丰富的数学功能,包括矩阵各种运算。如:正交变换、三角分解、特征值、常见的特殊矩阵等。,包括各种特殊函数。如:贝塞尔函数、勒让德函数、伽码函数、贝塔函数、椭圆函数等。,包括各种数学运算功能。如:数值微分、数值积分、插值、求极值、方程求根、,FFT、,常微分方程的数值解等。,(2)具有很好的图视系统,可方便地画出两维和三维图形。,图形用户界面,GUI,制作工具,可以制作用户菜单和控件。使用者可以根据自己的需求编写出满意的图形界面。,高级图形处理。如:色彩控制、句柄图形、动画等。,前一页,后一页,3,MATLAB,语言的主要特点,(,续),(3)可以直接处理声言和图形文件,。,(4)具有若干功能强大的应用工具箱。,(5)使用方便,具有很好的扩张功能。,声言文件。如:,WAV,文件(例:,wavread,sound,等)。,图形文件。如:,bmp,、,gif,、,pcx,、,tif,、,jpeg,等文件。,如:,SIMULINK,、,COMM,、,DSP,、,SIGNAL,等16种工具箱。,(6)具有很好的帮助功能,可以,M,文件转变为独立于平台的,EXE,可执行文件。,使用,MATLAB,语言编写的程序可以直接运行,无需编译。,提供十分详细的帮助文件(,PDF,、HTML、demo,文件)。,联机查询指令:,help,指令,(例:,help,elfun,help,exp,help,simulink),lookfor,关键词(例:,lookfor,fourier,)。,MATLAB,的应用接口程序,API,是,MATLAB,提供的十分重要的组件,由 一系列接口,指令,组成。用户就可在,FORTRAN,或,C,中,把,MATLAB,当作计算引擎使用,。,前一页,后一页,4,MATLAB,简介,1,MATLAB,的计算功能,(1),MATLAB,的数据类型,现有四种基本数据类型:双精度数组、字符串数组、元胞数组、构架数组。,元胞数组(,Cell Array),如同银行里的保险箱库一样。,该数组的基本组分是元胞(,Cell,),,以下标来区分。,元胞可以存放任何类型、任何大小的数组。,构架数组(,Structure Array),也能存放各类数据。,该数组的基本组分是构架(,Structure,),,以下标来区分。,构架必须在划分“域”后才能使用。,数据不能存放于构架,只能存放在域中。,构架的域可以存放任何类型、任何大小的数组。,不同构架的同名域中存放的内容可不同。(,例 1_2_2,),同一个元胞数组中各元胞的内容可以不同。(,例 1_2_1,),前一页,后一页,5,一,.,矩阵:,1.,矩阵的建立与表示法:,在命令窗口中输入:,A=1,2,3;4,5,6;7,8,9,可以得到:,A=,1 2 3,4 5 6,7 8 9,若要显示整行或整列,则可以用,(:),冒号来表示。冒,(,:,),代表矩阵中行,(ROWS),或列,(COLUMNS),的全部。,例如执行命令:,A(:,2),就会显示第,2,列的全部,结果,为:,ans,=,2,5,8,前一页,后一页,6,其他特殊矩阵的生成方法:,1,)、,eye(m,n),或,eye(m),产生,m*n,或,m*m,的单位矩阵。例如:,eye(3,4),与,eye(3,),分别产生如下矩阵:,1 0 0 0 1 0 0,0 1 0 0 0 1 0,0 0 1 0 0 0 1,2,)、,zeros(m,n),或,zeros(m),产生,m*n,或,m*m,的零矩阵。例如:,zeros(3,4),与,zeros(3),分别产生如下矩阵:,0 0 0 0 0 0 0,0 0 0 0 0 0 0,0 0 0 0 0 0 0,前一页,后一页,7,3,)、,ones(m,n),或,ones(m),产生,m*n,或,m*m,的全部元素为,1,的矩,阵。例如:,ones(3,4),与,ones(3),分别产生如下矩阵:,1 1 1 1 1 1 1,1 1 1 1 1 1 1,1 1 1 1 1 1 1,2.,常用矩阵函数:,1,)、,d=,eig,(A),返回矩阵,A,的特征值所组成的列向量;,v,d=,eig,(A),返回分别由矩阵,A,的特征向量和特征值(以其为主对角线元素,其余元素为零)的两个矩阵。,例如执行命令:,v,d=,eig,(A),结果为:,前一页,后一页,8,v=d=,0.2320 0.7858 0.4082 16.1168 0 0,0.5253 0.0868 -0.8165 0 -1.1168 0,0.8187 -0.6123 0.4082 0 0 -0.0000,其中,v(:,i),为,d(i,i),所对应的特征向量。,2,)、,det,(A),计算行列式,A,的值。例如:,det,(A),结果为:,ans,=0,前一页,后一页,9,3,)、,expm,(A),对矩阵,A,求幂。例如:,expm,(A),结果为:,ans,=,1.0e+006*,1.1189 1.3748 1.6307,2.5339 3.1134 3.6929,3.9489 4.8520 5.7552,4,)、,inv(A),求矩阵,A,的逆。例如:,inv(A),结果为:,Warning:Matrix is close to singular or badly scaled.Results may be inaccurate.RCOND=2.055969e-018.,ans,=1.0e+016*,-0.4504 0.9007 -0.4504,0.9007 -1.8014 0.9007,-0.4504 0.9007 -0.4504,前一页,后一页,10,5,)、,orth,(A),返回对应于,A,的正交化矩阵。例如:,orth,(A),结果为:,ans,=,0.2148 0.8872,0.5206 0.2496,0.8263 -0.3879,6,)、,poly(A),若,A,为一矩阵,则返回,A,的特征多项式。例如:,poly(A),结果为:,ans,=,1.0000 -15.0000 -18.0000 -0.0000,若,A,为一向量,则返回以,A,的元素为根的特征多项式。例如:,r=1,2,3;p=poly(r),结果为:,p=,1 -6 11 -6,7,)、,rank(A),计算矩阵,A,的秩。例如:,r=rank(A),结果为:,r=2,前一页,后一页,11,3.,矩阵的四则运算符号:,加 “,+”,减 “,”,乘 “*”,除 “,/”,共轭转置 “,”非共轭转置“,.,”,例如:,b=1+2i;3+4i,b=,1.0000+2.0000i,3.0000+4.0000i,b,ans,=,1.0000-2.0000i 3.0000-4.0000i,b.,ans,=,1.0000+2.0000i 3.0000+4.0000i,前一页,后一页,12,4.,矩阵分解:,1,)、,q,r=,qr,(A),将矩阵,A,做正交化分解,使得,A=q*r,。,q,为单位矩阵,(unitary matrix),其范数(,norm,)为,1,。,r,为对角化的上三角矩阵。例如:,q,r=,qr(A,),q=,-0.1231 0.9045 0.4082,-0.4924 0.3015 -0.8165,-0.8616 -0.3015 0.4082,r=,-8.1240 -9.6011 -11.0782,0 0.9045 1.8091,0 0 -0.0000,norm(q),ans,=,1.0000,前一页,后一页,13,2,)、,L,U=,lu,(A),将矩阵,A,做对角线分解,使得,A=L*U,,,L,为下三角矩阵,(,lower triangular,matrix,),,,U,为上三角矩阵,(upper triangular matrix),。,例如:,L,U=,lu(A,),L=,0.1429 1.0000 0,0.5714 0.5000 1.0000,1.0000 0 0,U=,7.0000 8.0000 9.0000,0 0.8571 1.7143,0 0 0.0000,前一页,后一页,14,二、多项式:,多项式是用向量形式来表示,从最右边算起,第一个为,0,阶系数,第二个,为,1,阶系数,依次类推。例如一个一元三次多项式:,4x3+3x2+2x+1,用,4 3 2 1,来表示。,1.,多项式的运算:,1,)、乘:,conv,指令执行多项式的相乘运算,指令格式为:,z=,conv,(x,y),例如:,x=1 3 5;y=2 4 6;,z=,conv(x,y,),z=,2 10 28 38 30,前一页,后一页,15,如果要对两个以上的多项式进行相乘,可以重复使用,conv,指令,例如:(,x,y,同上),conv(conv(x,y),x,),ans,=,2 16 68 172 284 280 150,2,)、,分解:,与,1,)相反,用,deconv,指令,其指令格式为:,z,r=,deconv,(x,y),表示,x,除以,y,商为,z,,,余数,为,r,。,例如:,z,r=,deconv(z,x,),z=,2 4 6,r=,0 0 0 0 0,前一页,后一页,16,3,)、,求根:,roots,指令用于求多项式的根。例如:,fx,=1 3 2;,rootoffx,=,roots(fx,),rootoffx,=,-2,-1,4,)、,polyval,(p,x),计算多项式,p,在,x,出的值,其中,x,可以是点或向量或矩阵。,例如:,p=1 -6 11 -6,;,x=1;p1=,polyval,(p,x),结果为:,p1=0,x=1,2,3;p2=,polyval,(p,x),结果为:,p2=0 0 0,前一页,后一页,17,x=A;p3=,polyval,(p,x),结果为:,p3=,0 0 0,6 24 60,120 210 336,5,)、,polyder,(p),求,p,的微分多项式。例如:,p=1-6 11-6;,dp,=,polyder(p,),dp,=,3 -12 11,前一页,后一页,18,6,)、,r,p,k=residue(x,y),求,x/y,的部分因式分解。若多项式,x,y,都没有重根,则可把,x/y,的比值表示为,x/y=r1/(s-p1)+r2/(s-p2)+.+,rn,/(,s-pn)+ks,例如,用,residue,指令,求,x/(x2+3x+2),的部分因式分解:,x=1 0;,y=1 3 2;,r,p,k=residue(x,y),r=,2,-1,p=,-2,-1,k=,前一页,后一页,19,当输入三个参数,r,p,k,时,该函数又会生成原来的函数。例如:,?x,y=residue(r,p,k),x=,1 0,y=,1 3 2,前一页,后一页,20,三 符号变量、符号表达式、抽象函数:,函数,sym,用于生成符号变量和符号表达式,如:,x=sym(x)a=sym(alpha),分别创建变量,x,alpha,f=sym(a*x2+b*x+c),创建变量表达式,f,,,但要注意此式并没有自动创建变量,a,b,c,x,。,可以用函数,syms,对多个变量同时定义,如:,syms,a b c x,函数,sym,也可以用来表示确定的函数,如,f=sym(f(x),生成函数,f(x),。,前一页,后一页,21,四 常见符号计算:,1.,微分:,diff,是求微分最常用的函数。其输入参数既可以是函数表达式,也可以是符号矩阵,。,Diff(f,x,n),表示对,f,关于,x,求,n,阶导数。例如:,1).,下面程序段将生成表达式,sin(ax),并分别对其中,的,x,和,a,求导。,?,syms,a x,?f=sin(a*x);,?,df,=diff(f,x),df,=,cos(a,*x)*a,?,dfa,=diff(f,a),dfa,=,cos(a,*x)*x,前一页,后一页,22,2,)、若输入参数为矩阵,将对矩阵中的每个元素求导。,?,syms,a x,?A=-sin(a*x),sin(a*,x);cos(a,*,x),cos(a,*x),A=,-sin(a*x),sin(a*x),cos(a,*x),cos(a,*x),?,dy,=diff(A,x),dy,=,-,cos(a,*x)*a,cos(a,*x)*a,-sin(a*x)*a,-sin(a*x)*a,前一页,后一页,23,3,)、可用函数,jacobian,来计算,Jacobi,矩阵。,?,syms,r l f,?x=r*,cos(l,)*,cos(f,);,?y=r*,cos(l,)*sin(f);,?z=r*sin(l);,?J=,jacobian(x;y;z,r,l f),J=,cos(l,)*,cos(f,),-r*sin(l)*,cos(f,),-r*,cos(l,)*sin(f),cos(l,)*sin(f),-r*sin(l)*sin(f),r*,cos(l,)*,cos(f,),sin(l),r*,cos(l,),0 ,前一页,后一页,24,2.,积分:用函数,int,来求符号表达式的积分。命令格式为:,int,(f,r,x0,x1),其中,f,为所要积分的表达式,,r,为积分变量,若为定积分,则,x0,x1,为积分上下限。例:,?sym x;,?sym k real,?f=exp(-(k*x)2),f=,exp(-k2*x2),?,int(f,x,-inf,inf,),ans,=,signum(k)/k,*pi(1/2),前一页,后一页,25,3.,级数求和:函数用于对符号表达式求和。例:,?,syms,k;,?s1=symsum(1/k2,1,inf),s1=,1/6*pi2,前一页,后一页,26,4.,极限:用函数,limit,来求表达式的极限。,函数,limit,的常用调用格式:,数学表达式 命令格式,Limit(f),或,limit(f,x),Limit(f,x,a),或,limit(f,a),Limit(f,x,a,left),Limit(f,x,a,right),前一页,后一页,27,5.,化简:,1,)、,collect(f),将表达式中相同次幂的项合并,也可以再输入一个参数指定以哪个变量的幂次合并。,2,)、,expand(f),将表达式展开。,3,)、,horner,(f),将表达式转换为嵌套格式。,4,)、,factor(f),将表达式分解因式,并且分解后的多项式的所有系数都为有理数。,5,)、,simplify(f),利用函数规则对表达式进行化简。,前一页,后一页,28,前一页,后一页,29,MATLAB,的,程序设计,前一页,后一页,30,1 脚本文件和函数文件,11,M,脚本文件,对于一些比较简单的问题,在指令窗中直接输入指令计算。,对于复杂计算,采用脚本文件(,Script file),最为合适。,MATLAB,只是按文件所写的指令执行。,M,脚本文件的特点是:,脚本文件的构成比较简单,只是一串按用户意图排列而成的(包括控制流向指令在内的),MATLAB,指令集合。,脚本文件运行后,所产生的所有变量都驻留在,MATLAB,基本工作空间,(,Base workspace),中,。,只要用户不使用清除指令(,clear),MATLAB,指令窗不关闭,这些变量将一直保存在,基本工作空间,中,。,M,文件有两种形式:,脚本文件(,Script File),和函数文件(,Function File)。,这两种文件的扩展名,均为“.,m”。,前一页,后一页,31,1 脚本文件和函数文件(,续1),12,M,函数文件,与脚本文件不同,函数文件犹如一个“黑箱”,把一些数据送进并经加工处理,再把结果送出来。,MATLAB,提供的函数指令大部分都是由函数文件定义的。,M,函数文件的特点是:,从形式上看,与脚本文件不同,函数文件的笫一行总是以“,function”,引导的“函数申明行”。,从运行上看,与脚本文件运行不同,每当函数文件运行,,MATLAB,就会专门为它开辟一个临时工作空间,称为,函数工作空间,(,Function workspace),。当执行文件最后一条指令时,就结束该函数文件的运行,同时该临时函数空间及其所有的中间变量就立即被清除。,MATLAB,允许使用比“标称数目”较少的输入输出宗量,实现对函数的调用。,前一页,后一页,32,1 脚本文件和函数文件(,续2),13,M,文件的一般结构,由于从结构上看,脚本文件只是比函数文件少一个“函数申明行”,所以只须描述清楚函数文件的结构。,典型,M,函数文件的结构如下:,函数申明行:位于函数文件的首行,以关键字,functio,开头,函数名以及函数的输入输出宗量都在这一行被定义。,笫一注释行:紧随函数申明行之后以%开头笫一注释行。该行供,lookfor,关键词查询和,help,在线帮助使用,。,在线帮助文本区:笫一注释行及其之后的连续以%开头的所有注释行构成整个在线帮助文本。,编写和修改记录:与在线帮助文本区相隔一个“空”行,也以%开头,标志编写及修改该,M,文件的作者和日期等。,函数体:为清晰起见,它与前面的注释以“空”行相隔。,前一页,后一页,33,2 函数调用和参数传递,21 局部变量和全局变量,局部(,Local),变量:它存在于函数空间内部的中间变量,产生于该函数的运行过程中,其影响范围也仅限于该函数本身。,全局(,Global),变量:通过,global,指令,,MATLAB,也允许几个不同的函数空间以及基本工作空间共享同一个变量,这种被共享的变量称为全局变量。,22 函数调用,在,MATLAB,中,调用函数的常用形式是:,输出参数1,输出参数2,=函数名(输入参数1,输入参数2,),函数调用可以嵌套,一个函数可以调用别的函数,甚至调用它自己(递归调用)。,前一页,后一页,34,2 函数调用和参数传递(,续),23 参数传递,MATLAB,在函数调用上有一个与众不同之处:函数所传递的参数具有可调性。,传递参数数目的可调性来源于如下两个,MATLAB,永久变量:,函数体内的,nargin,给出调用该函数时的输入参数数目。,函数体内的,nargout,给出调用该函数时的输出参数数目。,只要在函数文件中包括这两个变量,就可以知道该函数文件调用时的输入参数和输出参数数目。,值得注意:,nargin,、,nargout,本身都是函数,,,不是变量,所以用户不能赋值,也不能显示。,“变长度”输入输出宗量:,varargin,、,varrgout,。,具有接受,“,任意多输入,”,、返回,“,任意多输出,”,的能力。,跨空间变量传递:,evalin,。,(参考:,circle,.,m,am1.m),前一页,后一页,35,23,MATLAB,的程序结构和控制流,231 程序结构,循环结构:,MATLAB,提供两种循环方式。,顺序结构,分支结构:,ifelseend,。,forend,循环和,while-end,循环。,232 程序流控制,常用指令:,return,echo,input,pause,keyboard,break。,switch-case,结构。,try-catch,结构。,警示指令:,error,warning。,前一页,后一页,36,23,MATLAB,的程序结构和控制流(,续),233 图形用户界面(,GUI),编程,现代的主流应用程序已经从命令行的交互方式转变为以图形界面为主的交互方式,这主要是由于它给用户带来了操作和控制的方便与灵活性。,(面向对象编程),MATLAB,能够以比较简单的方式实现一系列的图形界面功能。通过对控件、菜单属性的设置和,Callback,的编写,就能够满足大多数用户的需求。,控件的,Callback,属性,:,Callback,属性的取值是字符串,可以是某个,M,文件名或一小段,MATLAB,语句,。,当用户激活控件对象(,例,如:在控件对象图标上单击鼠标左键)时,应用程序就运行,Callback,属性定义的子程序。,菜单的,Callback,属性,:,Callback,属性的取值是字符串,可以是某个,M,文件名或一小段,MATLAB,语句,。,当用户激活菜单对象时,若没有子菜单就运行,Callback,属性定义的子程序。若有,先运行,Callback,属性定义的子程序,再显示子菜单。,前一页,后一页,37,24,M,文件的调试,编写,M,文件时,错误(,Bug),在所难免。错误有两种:语法(,Syntax),错误和运行(,Run-time),错误。,语法错误是指变量名、函数名的误写,标点符号的缺、漏等。对于这类错误,通常能在运行时发现,终止执行,并给出相应的错误原因以及所在行号。,运行错误是算法本身引起的,发生在运行过程中。相对语法错误而言,运行错误较难处理。尤其是,M,函数文件,它一旦运行停止,其中间变量被删除一空,错误很难查找。,有两种调试方法:直接调试法和工具调试法。,前一页,后一页,38,24,M,文件的调试(,续1),直接调试法:可以用下面方法发现某些运行错误。,在,M,文件中,将某些语句后面的分号去掉,迫使,M,文件输出一些中间计算结果,以便发现可能的错误。,在适当的位置,添加显示某些关键变量值的语句(包括使用,disp,在内)。,利用,echo,指令,使运行时在屏幕上逐行显示文件内容。,echo on,能显示,M,脚本文件;,echo,FunNsme,on,能显示名为,FunNsme,的,M,函数文件。,在原,M,脚本或函数文件的适当位置,增添指令,keyboard。,keyboard,语句可以设置程序的断点。,通过将原,M,函数文件的函数申明行注释掉,可使一个中间变量难于观察的,M,函数文件变为一个所有变量都保留在基本工作空间中的,M,脚本文件。,前一页,后一页,39,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服