欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    MATLAB-simulink的数值运算.ppt

    • 资源ID:6511668       资源大小:232KB        全文页数:60页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    MATLAB-simulink的数值运算.ppt

    1,1.5 MATLAB的数值运算,MATLAB具有强大的数值能力,它不仅能对矩阵和向量进行相应的运算,而且也可处理多项式的解、数据分析、函数的极值、线性方程组的解、函数的微积分和函数绘图等问题。,2,1.5.1 矩阵运算,MATLAB的基本数据单元是不需要指定维数的复数矩阵,它提供了各种矩阵的运算与操作,因它既可以对矩阵整体地进行处理,也可以对矩阵的某个或某些元素进行单独地处理,所以在MATLAB环境下矩阵的操作同数的操作一样简单。,3,1.矩阵的实现,在MATLAB语言中不必描述矩阵的维数和类型,它们是由输入的格式和内容来确定的,例如当 A1 2时,把A当作一个2维行向量;A5时,把A当作一个标量;A12i时,把A当作一个复数。,4,矩阵可以用以下几种方式进行赋值:直接列出元素的形式;通过语句和函数产生;建立在文件中;从外部的数据文件中装入。,(1)矩阵的赋值,5,对于比较小的简单矩阵可以使用直接排列的形式输入,把矩阵的元素直接排列到方括号中,每行内的元素间用空格或逗号分开,行与行的内容用分号隔开。例如,矩阵在MATLAB下的输入方式为 A=1,2,3;4,5,6;7,8,9或 A=1 2 3;4 5 6;7 8 9,简单矩阵的输入,6,简单矩阵的输入,对于比较大的矩阵,可以用回车键代替分号,对每一行的内容分行输入,也可利用续行符号(),把一行的内容分两行来输入。例如,A=1 2 3;4 5 6 7 8 9或 A=1 2 3;4 5 6;7 8 9 输入后A矩阵将一直保存在工作空间中,除非被替代和清除,在MATLAB的命令窗口中可随时查看其内容。,7,利用语句或函数产生矩阵,在MATLAB中,矩阵也可利用下面的语句来产生:s1:s2:s3 其中,s1为起始值;s3为终止值;s2为步矩。使用这样的命令就可以产生一个由s1开始,以步距s2自增,并终止于s3的行向量。,8,利用语句或函数产生矩阵,例如:y=0:pi/4:pi结果显示:y=0 0.7854 1.5708 2.3562 3.1416 如果S2省略,则可以认为自增步距为1,例如x=1:5结果显示:x=1 2 3 4 5,9,利用语句或函数产生矩阵,利用size()函数可测取一个矩阵的维数,该函数的调用格式为n,m=size(A)其中:A为要测试的矩阵名,而返回的两个参数n和m分别为A矩阵的行数和列数。,10,利用语句或函数产生矩阵,当要测试的变量是一个向量时,当然仍可由size()函数来得出其大小,更简洁地,用户可以使用length()函数来求出,该函数的调用格式为n=length(x)其中,x为要测试的向量名,而返回的n为向量x的元素个数。如果对一个矩阵A用length(A)函数测试,则返回该矩阵行、列的最大值,即该函数等效于max(size(A)。,11,(2)矩阵的元素,MATLAB的矩阵元素可用任何表达式来描述,它既可以是实数,也可以是复数,例如B=-1/3 1.3;sqrt(3)(1+2+3)*i结果显示:B-0.3333 1.3000 1.7321 0+6.0000i,12,矩阵的元素,MATLAB允许把矩阵作为元素来建立新的矩阵,例如,利用A矩阵通过下面的语句 C=A;10,11,12结果显示:C=1 2 3 4 5 6 7 8 9 10 11 12,13,矩阵的元素,MATLAB还允许对一个矩阵的单个元素进行赋值和操作,例如如果想将A矩阵的第2行第3列的元素赋为100,则可通过下面的语句来完成 A(2,3)=100结果显示:A=1 2 34 5 1007 8 9这时将只改变此元素的值,而不影响其它元素的值。,14,矩阵的元素,如果给出的行数或列数大于原来矩阵的范围,则MATLAB将自动扩展原来的矩阵,并将扩展后未赋值的矩阵元素置为0。例如如果想把矩阵A的第4行第5列元素的值定义为8,就可以通过下面语句来完成。A(4,5)=8结果显示:A=1 2 3 0 0 4 5 100 0 0 7 8 9 0 0 0 0 0 0 8,15,矩阵的元素,MATLAB还允许对子矩阵进行定义和处理。例如:A(1:3,1:2:5)%取A矩阵的第1行到第3行内,且位于第1,2,5列上的所有元素构成的子矩阵 A(2:3,:)%取A矩阵的第2行和第3行所有元素构成的子矩阵,16,(3)特殊矩阵的实现,在MATLAB中特殊矩阵可以利用函数来建立。(1)单位矩阵函数eye()基本格式:Aeye(n)产生一个n阶的单位矩阵A Aeye(size(B)产生与B矩阵同阶的单位矩阵A如:A=eye(5),17,特殊矩阵的实现,(2)零矩阵函数zeros()(3)1矩阵函数ones()(4)随机元素矩阵函数rand()(5)对角矩阵函数diag()(6)伴随矩阵函数compan()(7)上三角矩阵函数triu()和下三角矩阵函数tril(),18,2.矩阵的基本运算,矩阵运算是MATLAB的基础,MATLAB的矩阵运算功能十分强大,并且运算的形式和一般的数学表示十分相似。,19,(1)矩阵的转置,矩阵转置的运算符为“”。例如A=1 2 3;4 5 6;B=A结果显示:B=1 4 2 5 3 6,20,矩阵的转置,如果是复数的矩阵,则转置()将同时对复数进行共轭处理,而(.)则只是将其排列形式进行转置。例:b=1+2i 2-7ib=1.0000-2.0000i 2.0000+7.0000ib=1+2i 2-7i.b=1.0000+2.0000i 2.0000-7.0000i,21,(2)矩阵的加和减,矩阵的加减法的运算符为“”和“”。矩阵只有同阶方可进行加减运算,标量可以和矩阵进行加减运算但应对矩阵的每个元素施加运算。例如A=1 2 3;4 5 6;B=A+1B=2 3 4 5 6 7,22,(3)矩阵的乘法,矩阵的乘法运算符为“*”。当两个矩阵中前一矩阵的列数和后一矩阵的行数相同时,可以进行乘法运算,这与数学上的形式是一致的。例如:CA*B;在MATLAB中还可进行矩阵和标量相乘,其结果为标量与矩阵中的每个元素分别相乘。,23,(4)矩阵的除法,矩阵的除法有两种运算符“”和“/”,分别表示左除和右除。一般地讲,x=AB是A*x=B的解,x=B/A是x*A=B的解,通常ABB/A,而AB=inv(A)*B,B/A=B*inv(A),24,(5)矩阵的乘方,矩阵的乘方运算符为“”。一个方阵的乘方运算可以用AP来表示。P为正整数,则A的P次幂即为A矩阵自乘P次。如果P为负整数,则可以将A自乘P次,然后对结果进行求逆运算,就可得出该乘方结果。如果P是一个分数,例如Pnm,其中n和m均为整数,则首先应该将A矩阵自乘n次,然后对结果再开m次方。,25,(6)矩阵的翻转,MATLAB还提供了一些矩阵翻转处理的特殊命令,对nm维矩阵A,如 B=fliplr(A)%将矩阵A进行左右翻转再赋给 B,即bijai,m+1-j,C=flipud(A)%将矩阵A进行上下翻转再赋给C,即cijan+1-i,j,D=rot90(A)%将矩阵A逆时针进行旋转90度后赋给D,即dijaj,m+1-i。,26,(7)矩阵的超越函数,MATLAB中exp(),sqrt(),sin(),cos()等基本函数命令可以直接使用在矩阵上,这种运算只定义在矩阵的单个元素上,即分别对矩阵的每个元素进行运算。超越数学函数,可以在函数后加上m而成为矩阵的超越函数,例如expm(A),sqrtm(A),logm(A)分别为矩阵指数、矩阵开方和矩阵对数。矩阵的超越函数要求运算的矩阵必须为方阵。,27,3.矩阵的特殊运算,(1)矩阵行列式和矩阵求逆求逆:inv(A)求行列式:det(A)要求矩阵必须为方阵。,a=1 2 3;4 5 6;2 3 5;b=inv(a)b=-2.3333 0.3333 1.0000 2.6667 0.3333-2.0000-0.6667-0.3333 1.0000det(a)ans=-3,28,(2)矩阵的迹 假设一个方阵为 Aaij,i,j=1,2,n;则矩阵A的迹定义为即矩阵的迹为该矩阵对角线上各个元素之和。由代数理论可知矩阵的迹和该矩阵的特征值之和是相同的。在MATLAB中提供了求取矩阵迹的函数trace(),其调用方法为 trace(A),29,(3)矩阵的秩 对于nm维的矩阵A,若矩阵所有的列向量中共有 rc个线性无关,则称矩阵的列秩为rc,如果rc=m,则称A为列满秩矩阵;相应地,若矩阵A的行向量中有rr个是线性无关的,则称矩阵A的行秩为rr,如果rrn,则称A为行满秩矩阵。MATLAB提供了一个内部函数rank()来用数值方法求取一个已知矩阵的秩,其调用格式为 k=rank(A),30,(4)矩阵的三角分解 矩阵的三角分解又称为LU分解,它的目的是将一个矩阵A分解成一个下三角矩阵L和一个上三角矩阵U的乘积,亦即可以写成ALU。在MATLAB下也给出了矩阵的LU分解函数lu(),该函数的调用格式为 L,U=lu(A),31,(5)矩阵的特征值与特征向量V,D=eig(A)其中:A为要处理的矩阵,D为一个对角矩阵,其对角线上的元素为矩阵A的特征值,而每个特征值对应的V矩阵的列为该特征值的特征向量。该矩阵是一个满秩矩阵,它满足AVVD,且每个特征向量各元素的平方和均为1。如果调用该函数时只返回一个变量D,则D为A的特征值。,32,(6)矩阵的特征多项式、特征方程和特征根 MATLAB提供了求取矩阵特征多项式系数的函数poly(),其调用格式为P=poly(A)其中:A为给定的矩阵,返回值P为一个行向量,其各个分量为矩阵A的降幂排列的特征多项式系数。即 P=a0 a1 an,33,MATLAB语言把多项式表达成一个行向量,该向量中的元素是按多项式降幂排列的。f(x)=a0 xn+a1xn-1+an-1x+an 可用行向量 p=a0 a1 an-1 an表示。poly(A)1、产生A矩阵特征多项式系数向量;2、求根向量A对应的多项式。特征多项式一定是n+1维的 特征多项式第一个元素一定是1,34,例:a=1 2 3;4 5 6;7 8 0;p=poly(a)p=1.00-6.00-72.00-27.00p是多项式p(x)=x3-6x2-72x-27的MATLAB描述方法,我们可用函数文件,显示数学多项式的形式:p1=poly2sym(p)p1=x3-6*x2-72*x-27,35,MATLAB中根据矩阵特征多项式求特征根的函数为roots(),其调用格式为V=roots(P)其中:P为特征多项式的系数向量,而V为特征多项式的解,即原始矩阵的特征根。,36,例:a=1 2 3;4 5 6;7 8 0;p=poly(a)p=1.00-6.00-72.00-27.00r=roots(p)r=12.1229-5.7345-0.3884显然,r是矩阵a的特征值,37,当然我们可用poly令其返回多项式形式p2=poly(r)p2=1.00-6.00-72.00-27.00 MATLAB规定多项式系数向量用行向量表示,一组根用列向量表示。,38,1.5.2 向量运算,虽然在MATLAB中向量和矩阵在形式上有很多的一致性,但它们实际上遵循着不同的运算规则。MATLAB向量运算符由矩阵运算符前面加一点“.”来表示,如“.*”、“./”和“.”等。,39,1.向量的加减,向量的加、减运算与矩阵的运算相同,所以“”和“”既可被向量接收又可被矩阵接收。,40,2.向量的乘法 向量乘法的操作符为“.*”。如果x,y两向量具有相同的维数,则x.*y表示x和y单个对应元素之间的对应相乘。例如x=1 2 3;y=4 5 6;z=x.*yz=4 10 18 可见向量的输入和输出与矩阵具有相同的格式,但它们的运算规则不同,例如,如果x是一个向量,则求取函数x平方时不能直接写成x*x,而必须写成x.*x,否则将给出错误信息。,41,但是对于矩阵可以使用向量运算符号,这时实际上就相当于把矩阵看成了向量进行运算。例如对于两个维数相同的A,B矩阵,CA.*B表示A和B矩阵的相应元素之间直接进行乘法运算,然后将结果赋给C矩阵,把这种运算称为矩阵的点积运算,两个矩阵之间的点积是它们对应元素的直接运算,它与矩阵的乘法是不同的。例如A=1 2 3;4 5 6;7 8 9;B=2 3 4;5 6 7;8 9 0;C=A.*BC=2 6 12 20 30 42 56 72 0,42,3.向量的除法 向量除法的操作符为“./”或“.”。它们的运算结果一样。例如对前面给出的x和y向量x=1 2 3;y=4 5 6;z=y./xz=4.0000 2.5000 2.0000,43,对于向量x.y和y./x一样,将得到相同的结果,这与矩阵的左除、右除是不一样的,因向量的运算是它们对应元素间的运算。对于矩阵也可使用向量的除法操作符,这时就相当于把矩阵看成向量进行运算。,44,4.向量的乘方 向量乘方的运算符为“.”。向量的乘方是对应元素的乘方,在这种底与指数均为向量的情况下,要求它们的维数必须相同。例如x=1 2 3;y=4 5 6;z=x.y z=1 32 729它相当于 z=1 2 3.4 5 6=14 25 36,45,1.5.3 关系和逻辑运算,1关系运算 MATLAB常用的关系操作符见表1-8表示。MATLAB的关系操作符可以用来比较两个大小相同的矩阵,或者比较一个矩阵和一个标量。如果给定的关系成立,则操作结果为逻辑真(1),否则操作结果为逻辑假(0)。,46,表1-8 关系运算符,47,函数find()在关系运算中很有用,它可以在矩阵中找出一些满足一定关系的数据元素。例如A=1:9;B=A4B=0 0 0 0 1 1 1 1 1C=A(A4)C=5 6 7 8 9或 C=find(A4)C=5 6 7 8 9,find功能:查找非零元素的值。格式:k=find(X),48,2.逻辑运算,MATLAB的逻辑操作符有(与)、|(或)和(非)。它们通常用于元素或01矩阵的逻辑运算。与运算符和或运算符可比较两个标量或两个同阶矩阵,对于矩阵,逻辑运算符是作用于矩阵中的元素。逻辑运算结果信息也用“0”和“1”表示,逻辑操作符认定任何非零元素都表示为真。给出1为真,0为假。,49,非是一元操作符,当A非零时,A返回的信息为0,当A为零时,A返回信息为1。因而就有:P|(P)返回值为1,P(P)返回值为0。例A=1:9;C=(A4)C=1 1 1 1 0 0 0 0 0C=(A4)&(A7)C=0 0 0 0 1 1 0 0 0,50,3关系和逻辑运算函数,除了上面介绍的关系和逻辑运算符外,MATLAB中还提供了一些关系和逻辑运算函数如表1-9所示。表1-9 关系和逻辑运算函数,51,多项式运算,1多项式的表示 在高等数学中,多项式一般可表示成以下形式 f(x)=a0 x n+a1 x n-1+an-1 x+an其中,a0,a1,an称为多项式的系数。所以在MATLAB中多项式很容易用其系数组成的行向量来表示,即P=a0 a1 an 其中行向量是按其系数降幂排列组成的系数向量。,52,在MATLAB中,利用函数poly2str()可将多项式的系数向量表示成相应多项式的习惯表示形式,该函数的调用格式为f=poly2str(p,s)其中,p为多项式的系数向量;s为多项式的变量名;f为相应的多项式。例 p=1 5 0 3 2;f=poly2str(p,x)结果显示:f=x4+5 x3+3 x+2,53,2多项式的四则运算 多项式的四则运算主要是多项式的加、减、乘和除运算。其中多项式的加、减运算要求两个相加、减多项式的系数向量维数的大小必须相等。(1)多项式的加减 例1-11 求以下两个多项式的和。f1(x)=x 4+5x 3+3x+2,f2(x)=x 2+6x+5解:MATLAB命令如下p1=1 5 0 3 2;p2=0 0 1 6 5;p=p1+p2p=1 5 1 9 7,54,(2)多项式的乘法 在MATLAB中,多项式的乘法运算,利用函数conv()来实现,函数conv()相等于执行两个数组的卷积,其调用格式为p=conv(p1,p2)上例中:p1=1 5 0 3 2;p2=1 6 5;p=conv(p1,p2)p=1 11 35 28 20 27 10,55,(3)多项式的除法 在MATLAB中,多项式的除法运算,利用函数deconv()来实现,其调用格式为p,r=deconv(p1,p2)其中:p为商多项式、r为余多项式。函数deconv()相当于两个数组的解卷运算,使p1=conv(p2,p)+r成立。,56,3多项式的值及多项式的导数 在MATLAB中提供了多项式求值函数polyval()和多项式求导的函数polyder()它们的调用格式分别为f0=polyval(p,x0)dp=polyder(p)其中:x0为求值点的x值,p为多项式的系数向量。同样,MATLAB也提供了多项式矩阵的求值函数polyvalm(),其调用格式为fA=polyvalm(p,A),57,4多项式的求解 MATLAB中多项式的求解运算同样可利用前面介绍的函数roots()来实现,其调用格式为r=roots(p),58,5多项式的拟合 在MATLAB中,多项式的拟合可用函数polyfit()来实现,其调用格式为p,s=polyfit(x,y,n)其中:x,y为利用最小二乘法进行拟合的数据;n为要拟合的多项式的阶次;p为要拟合的多项式的系数向量;s为使用该函数获得的错误预估计值。一般说来,多项式拟合的阶数越高,拟合的精度就越高。,59,例:x=0:0.1:2*pi;%生成样本点xy=sin(x)+0.5*rand(size(x);%生成样本点y,通过随机矩阵p=polyfit(x,y,3)%拟合出多项式(3阶)y1=polyval(p,x);%求多项式的值plot(x,y,+,x,y1,-r)%绘制多项式曲线,验证结果p1=poly2str(p,x),60,运行结果:,

    注意事项

    本文(MATLAB-simulink的数值运算.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开