您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > matlab7从入门到精通
MATLAB7.0从入门到精通主要讲述内容•第1章MATLAB简介•第2章数值运算•第3章单元数组和结构•第4章字符串•第5章符号运算•第6章MATLAB绘图基础•第7章程序设计•第8章计算方法的MATLAB实现•第9章优化设计•第10章Simulink仿真初探第1章MATLAB简介•MATLAB是一种高效能的、用于科学和技术计算的计算机语言。它将计算、可视化和编程等功能集于一个易于使用的环境。MATLAB是一个交互式系统(写程序与执行命令同步),其基本的数据元素是没有维数限制的阵列,因此采用MATLAB编制包含矩阵和向量问题的程序时比采用只支持标量和非交互式的编程C或FORTAN语言更加方便。MATLAB的全名是MatrixLaboratory,意思是矩阵实验室,是由MathWorks公司推出的。1.1概述•MATLAB语言的优点:•(1)简单易学;•(2)代码短小高效,只需熟悉算法特点、使用场合、函数调用格式和参数意义,不必花大量时间纠缠具体算法;•(3)计算功能非常强大;•(4)强大的图形表达功能;•(5)可扩展性能。•MATLAB的一个重要特色:它有一套程序扩展系统和一组称之为工具箱(toolbox)的特殊应用子程序。工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。•MATLAB提供两种运行方式,命令行方式和M文件方式。具体情况见下面的两幅图。1.2运行环境•命令窗口左侧是工作空间窗口,其中包括变量名、变量数组大小、变量字节大小和变量类型。双击该变量会出现该变量的详细信息。命令历史窗口显示所有执行过的命令,可以双击再次执行。当前目录窗口显示当前目录下所有文件类型和最后修改时间。1.3MATLAB7.0的通用命令1.4MATLAB的帮助系统•命令行中输入help,列出所有函数类别和工具箱的名称和功能。命令行中输入help+工具箱名或函数名,可以显示对应的功能信息。•单击工具条上的问号按钮或单击Help菜单中的MATLANHelp项,可以打开联机帮助窗口。helpdesk和helpwin或doc产生联机帮助。•单击Help菜单中的Demos项或直接在命令窗口输入Demos,可以进行演示。•lookfor函数的用法,lookfor+关键字,这样可以避免新学者不知道函数名而束手无策。1.4MATLAB的帮助系统第2章数值运算•首先matlab中支持复数,表示方法为a=m+ni(j),当n是表达式时,n与i(j)之间必须要加乘号。另外也可以用complex(x,y)来产生复数。i,j不要作为变量名称,以免生成数据时发生误解。2.1MATLAB中的变量•a=1+2i•a=•1.0000+2.0000i•a=1+2*i•a=•1.0000+2.0000i•b=sin(2)+cos(2)i•???b=sin(2)+cos(2)i•|•Error:UnexpectedMATLABexpression.••b=sin(2)+cos(2)*i•b=•0.9093-0.4161i•x=sin(2);•y=cos(3);•z=complex(x,y)•z=•0.9093-0.9900i•z=complex(x)•z=•0.9093•i+2i•ans=•0+3.0000i•i+2*i•ans=•0+3.0000i•i=10;•i+2i•ans=•10.0000+2.0000i•i+2*i•ans=•30•5+2i•ans=•5.0000+2.0000i•5+2*i•ans=•25•MATLAB中的变量必须以字母打头,之后可以是任意字母、数字或下划线,变量名区分字母大小写,变量名不超过19个字符,默认变量名为ans。除此之外还包含一些特殊的变量。•Whos命令能够显示变量的信息。2.2MATLAB的数值运算基础A/B相当于B*inv(A)A\B相当于inv(A)*B2.3数组及向量运算•1、数组构造•数组及向量的生成可直接在方括号内输入数据,也可以不加括号,同样生成数组。•(1)利用first:increment:last来创建等差数组,a=(first:increment:last),increment为增量。•a=(0:0.5:2)•a=•00.50001.00001.50002.0000•(2)利用MATLAB函数linspace来创建数组,形成一个等差数列关系的数组,number为数组个数•linspace(firstvalue,lastvalue,number)。•a=linspace(0,2,5)•a=•00.50001.00001.50002.0000•(3)利用logspace函数来创建一个对数分隔的数组,形成一个等比数列关系的数组,logspace(firstvalue,lastvalue,number)。数值从10的firstvalue次幂到10的lastvalue次幂结束。•a=logspace(0,2,5)•a=•1.00003.162310.000031.6228100.0000•2、数组运算•(1)数组与标量的四则运算是指数组中的每个元素与标量进行加、减、乘、除运算。数组的指数运算exp,以2为底的指数运算pow2,自然对数运算log,常用对数运算log10,以2为底的对数运算log2,开方运算sqrt。是数组中每个元素进行相对应的运算。•(2)数组与数组之间进行运算时,每个数组必须具有相同的维数,且必须用点乘或点除。•查询x数组的第n个元素,x(n);•查询x数组的第2到4个元素,x(2:4);•查询x数组的第4到最后1个元素,x(4:end);•查询x数组的第3、2、1个元素,x(3:-1:1);•查询x数组的小于n元素,x(find(xn));•查询x数组的第4、2、5个元素,x([425]);•将x数组的第n个元素赋值为A,x(n)=A;•查询数组A的第2行,第3列的元素,A(2,3);•查询数组A的第3行所有的元素,A(3,:);•查询数组A的第2列转置后所有的元素,(A(:,2))’。•数组排序:sort(x)命令将数组x中的元素按升序排列。•当x是多维数组时,命令是将x中各列元素按升序排列;•当x是一个字符型单元数组,命令是将x中的元素按ASCп码升序排列;•当x数据类型是复数,命令将按各元素的模升序排列;•y=sort(x,mode)中,mode决定排序方式,选择ascend将按升序排列,选择descend将按降序排列,y与x保持相同大小。•3、向量运算•在高等数学中,向量的点积是指两个向量在其中某一向量方向上的投影的乘积,它通常来定义向量的长度,是个数值。c=dot(a,b)表示向量a与b的点积放在c中,a与b长度必须相同。•在高等数学中,向量的叉积是过两个向量的交点并且与这两个向量所在平面相垂直的向量,是个向量。c=cross(a,b)表示向量a与b的叉积放在c中,a与b必须是三个元素的向量,生成的仍然是一个三维的向量。2.4矩阵及其运算•1、矩阵的生成和基本操作•矩阵的生成通常有四种方法:•(1)在命令窗口中直接输入矩阵;•(2)通过语句和函数产生矩阵;•(3)在M文件中建立矩阵;•(4)从外部的数据文件中导入矩阵。•求方阵行列式的函数是det(determinant),求矩阵秩的函数是rank,求矩阵逆阵的函数是inv(inversematrix),size命令能测试矩阵的大小。•2、矩阵与常数的四则运算•矩阵与常数的四则运算是指矩阵各元素与常数之间的四则运算,但是矩阵与常数进行除法时,常数通常只能做除数。•3、矩阵之间的四则运算•矩阵与矩阵之间的加减法就是矩阵中各元素之间的加减运算,矩阵必须具有相同的维数。•矩阵与矩阵之间的乘法与除法要符合矩阵之间的乘除法则。•大小完全相同的方阵即可进行乘除运算,也可以进行点乘点除运算,但结果是不同的。•矩阵的左除为矩阵乘法的逆运算,若AB=C,则B=A\C,矩阵左除常用于解线性方程组AX=B;•矩阵的右除也为矩阵乘法的逆运算,若AB=C,则A=C/B。•4、矩阵的特征参数运算•矩阵的指数运算expm,自然对数运算logm,开方运算sqrtm。•其中矩阵必须是方阵。•矩阵的特征值运算使用函数eig或eigs计算;条件数的值代表矩阵“病态”程度的大小。计算矩阵的条件数值cond(a),计算1-范数矩阵条件值condest(a),计算矩阵的逆条件数值rcond(a);矩阵的奇异值一般通过函数svd(a)和svds(a)计算得到;矩阵范数运算norm(a),矩阵1-范数运算norm(a,1),矩阵2-范数运算norm(a,2),矩阵无穷大范数运算norm(a,inf),矩阵F-范数运算norm(a,’fro’);矩阵中的秩用函数rangk(a)求得;矩阵的正交化运算由函数orth(a)得到;求矩阵对角线所有元素之和用trace(a)计算;矩阵的伪逆运算pinv(a);矩阵函数计算funm(a,’fun’),a为矩阵,fun为调用函数名,函数名不带m。•5、矩阵的分解运算•三角分解(lu)•高斯消去法又称LU分解。•[l,u]=lu(x)产生一个“心理”下三角矩阵(下三角矩阵和置换矩阵的乘积)l和一个上三角矩阵u,使x=l*u成立,x可以不是方阵。•[l,u,p]=lu(x)产生一个单位下三角矩阵l,一个上三角矩阵u和交换矩阵p,使它们满足P*x=l*u。•x=[12;34];•[l,u]=lu(x)•l=•0.33331.0000•1.00000•u=•3.00004.0000•00.6667•[l,u,p]=lu(x)•l=•1.00000•0.33331.0000•u=•3.00004.0000•00.6667•p=•01•10•正交分解(qr)•[q,r]=qr(a)产生一个与a维数相同的上三角矩阵r和一个正交矩阵q(q*q’=单位矩阵),使它们满足a=q*r。•[q,r,e]=qr(a)产生一个交换矩阵e、一个上三角矩阵r和正交矩阵q,使它们满足a*e=q*r。•[q,r]=qr(a,0)对矩阵a进行有选择的qr分解。当矩阵a为m*n并且mn,则只产生具有前n列的正交矩阵q。•R=qr(a)只产生矩阵r,且满足r=chol(a’*a)。•特征值分解(eig)•[v,d]=eig(x)命令生成两个矩阵v和d,其中v是以矩阵x的特征向量作为列向量组成的矩阵,d是由矩阵x的特征值作为主对角线元素构成的对角矩阵,它们满足x*v=v*d。•[v,d]=eig(a,b)命令对矩阵a、b作广义特征值分解,它们满足a*v=b*v*d。•Chollesky分解(chol)•当矩阵a(n*n)对称正定时,则存在唯一的对角元素为正的上三角矩阵r,使得a=r*r’,这既是Chollesky分解。•奇异值分解(svd)•[u,s,v]=svd(x)命令产生一个与矩阵x维数相同的对角矩阵s、正交矩阵u和正交矩阵v,使它们满足x=u*s*v’。•[u,s,v]=svd(x,0)命令进行奇异值的最佳分解。X为m*n阶矩阵,当mn时,生成的矩阵u只有前n列元素被计算出来,且s为n*n阶矩阵。•6、矩阵的一些特殊处理函数•矩阵的变维•reshape(x,m,n)命令将矩阵x的所有元素分配到一个m*n的新矩阵,当矩阵x的元素数不是m*n时,返回错误信息。原则按列优先。•reshape(x,m,n,p…)和reshape(x,[m,n,p…])命令一样返回由矩阵x的元素组成的m*n*p*…多维矩阵,元素个数必须相等。•矩阵的变向•rot90(a)命令返回矩阵a按逆时针旋转90度所得的矩阵。•rot90(a,k)命令返回矩阵a按逆时针旋转90*k度所得的矩阵。•flipud(x)命令将矩阵x上下翻转。•fliplr(x)命令将矩阵x左右翻转。•flipdim(x,dim)命令将矩阵x的dim维
本文标题:matlab7从入门到精通
链接地址:https://www.777doc.com/doc-3602175 .html