第03讲 MATLAB-simulink的数值运算

上传人:野鹰 文档编号:46110805 上传时间:2018-06-22 格式:PPT 页数:60 大小:533.50KB
返回 下载 相关 举报
第03讲  MATLAB-simulink的数值运算_第1页
第1页 / 共60页
第03讲  MATLAB-simulink的数值运算_第2页
第2页 / 共60页
第03讲  MATLAB-simulink的数值运算_第3页
第3页 / 共60页
第03讲  MATLAB-simulink的数值运算_第4页
第4页 / 共60页
第03讲  MATLAB-simulink的数值运算_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《第03讲 MATLAB-simulink的数值运算》由会员分享,可在线阅读,更多相关《第03讲 MATLAB-simulink的数值运算(60页珍藏版)》请在金锄头文库上搜索。

1、1.5 MATLAB的数值运算MATLAB具有强大的数值能力,它不仅能对矩阵和向量进行相应的运算,而且也可 处理多项式的解、数据分析、函数的极值、 线性方程组的解、函数的微积分和函数绘图 等问题。11.5.1 矩阵运算MATLAB的基本数据单元是不需要指定维数的复数矩阵,它提供了各种矩阵的运算 与操作,因它既可以对矩阵整体地进行处理 ,也可以对矩阵的某个或某些元素进行单独 地处理,所以在MATLAB环境下矩阵的操作同数的操作一样简单。21. 矩阵的实现在MATLAB语言中不必描述矩阵的维数和类型,它们是由输入的格式和内容来确定 的,例如当A1 2时,把A当作一个2维行向量;A5时,把A当作一个

2、标量;A12i时,把A当作一个复数。3矩阵可以用以下几种方式进行赋值:v 直接列出元素的形式;v 通过语句和函数产生;v 建立在文件中;v 从外部的数据文件中装入。(1) 矩阵的赋值4对于比较小的简单矩阵可以使用直接排列的形 式输入,把矩阵的元素直接排列到方括号中,每行 内的元素间用空格或逗号分开,行与行的内容用分 号隔开。例如,矩阵在MATLAB下的输入方式为A=1, 2, 3; 4, 5, 6; 7, 8, 9 或 A=1 2 3; 4 5 6; 7 8 9简单矩阵的输入5简单矩阵的输入对于比较大的矩阵,可以用回车键代替分号, 对每一行的内容分行输入,也可利用续行符号( ),把一行的内容分

3、两行来输入。例如,A= 1 2 3 ; 4 5 6 7 8 9 或 A=1 2 3 ;4 56; 7 8 9输入后A矩阵将一直保存在工作空间中,除非被 替代和清除,在MATLAB的命令窗口中可随时查看 其内容。6利用语句或函数产生矩阵在MATLAB中,矩阵也可利用下面的语句来产生:s1:s2:s3 其中,s1为起始值;s3为终止值;s2为步矩 。使用这样的命令就可以产生一个由s1开始 ,以步距s2自增,并终止于s3的行向量。7利用语句或函数产生矩阵例如: y=0:pi/4:pi 结果显示: y=0 0.7854 1.5708 2.3562 3.1416如果S2省略,则可以认为自增步距为1,例如

4、 x=1:5 结果显示:x= 1 2 3 4 58利用语句或函数产生矩阵利用size( )函数可测取一个矩阵的维数,该函 数的调用格式为n, m=size(A)其中:A为要测试的矩阵名,而返回的两个参数n和 m分别为A矩阵的行数和列数。9利用语句或函数产生矩阵当要测试的变量是一个向量时,当然仍可由 size( )函数来得出其大小,更简洁地,用户可以使 用length( )函数来求出,该函数的调用格式为n=length(x)其中,x为要测试的向量名,而返回的n为向量x的 元素个数。如果对一个矩阵A用length(A)函数测试,则返 回该矩阵行、列的最大值,即该函数等效于 max(size(A)。

5、10(2) 矩阵的元素MATLAB的矩阵元素可用任何表达式来描述,它既可以是实数,也可以是复数,例如B= -1/3 1.3; sqrt(3) (1+2+3)*i结果显示:B-0.3333 1.3000 1.7321 0+6.0000i11矩阵的元素MATLAB允许把矩阵作为元素来建立新的矩阵 ,例如,利用A矩阵通过下面的语句C=A;10,11,12 结果显示:C=1 2 34 5 67 8 910 11 12 12矩阵的元素MATLAB还允许对一个矩阵的单个元素进行赋 值和操作,例如如果想将A矩阵的第2行第3列的元 素赋为100,则可通过下面的语句来完成A(2,3)=100 结果显示: A=

6、1 2 3 4 5 100 7 8 9 这时将只改变此元素的值,而不影响其它元素的值 。13矩阵的元素如果给出的行数或列数大于原来矩阵的范围,则 MATLAB将自动扩展原来的矩阵,并将扩展后未赋值的矩阵 元素置为0。例如如果想把矩阵A的第4行第5列元素的值定义 为8,就可以通过下面语句来完成。 A(4,5)=8结果显示: A=1 2 3 0 04 5 100 0 07 8 9 0 00 0 0 0 814矩阵的元素MATLAB还允许对子矩阵进行定义和处理。例如:A(1:3,1:2:5) %取A矩阵的第1行到第3行内,且位于第1,2,5列上的所有元素构成的子矩阵A(2:3,:) %取A矩阵的第2

7、行和第3行所有元素构成的子矩阵15(3) 特殊矩阵的实现在MATLAB中特殊矩阵可以利用函数来建立。(1) 单位矩阵函数eye( )基本格式: Aeye(n) 产生一个n阶的单位矩阵AAeye(size(B) 产生与B矩阵同阶的单位 矩阵A如:A=eye(5)16特殊矩阵的实现(2) 零矩阵函数zeros( )(3) 1矩阵函数ones( )(4) 随机元素矩阵函数rand( )(5) 对角矩阵函数diag( )(6) 伴随矩阵函数compan( )(7) 上三角矩阵函数triu( )和下三角矩阵函数 tril( )172. 矩阵的基本运算矩阵运算是MATLAB的基础,MATLAB的矩阵运算功

8、能十分强大,并且运算的形式 和一般的数学表示十分相似。18(1) 矩阵的转置矩阵转置的运算符为“ ”。例如A=1 2 3;4 5 6;B= A结果显示:B=1 42 53 619矩阵的转置如果是复数的矩阵,则转置()将同时对复数进行共 轭处理,而 (.)则只是将其排列形式进行转置。 例: b=1+2i 2-7i b =1.0000 - 2.0000i2.0000 + 7.0000i b=1+2i 2-7i. b =1.0000 + 2.0000i2.0000 - 7.0000i 20(2) 矩阵的加和减矩阵的加减法的运算符为“”和“ ”。矩阵只有同阶方可进行加减运算,标量 可以和矩阵进行加减运

9、算但应对矩阵的每个元 素施加运算。例如A=1 2 3;4 5 6; B=A+1B=2 3 45 6 7 21(3) 矩阵的乘法矩阵的乘法运算符为“*”。当两个矩阵中前 一矩阵的列数和后一矩阵的行数相同时,可以进行 乘法运算,这与数学上的形式是一致的。例如:CA*B;在MATLAB中还可进行矩阵和标量相乘,其结果为标量与矩阵中的每个元素分别相乘。22(4) 矩阵的除法矩阵的除法有两种运算符“”和“/”, 分别表示左除和右除。一般地讲,x= AB是A*x=B的解, x=B/A是x*A=B的解,通常ABB/A, 而AB=inv(A)*B, B/A= B*inv(A)23(5) 矩阵的乘方矩阵的乘方运

10、算符为“”。一个方阵的乘方 运算可以用AP来表示 。P为正整数,则A的P次幂 即为A矩阵自乘P次。如果P为负整数,则可以将A自乘P次,然后对结果进行求逆运算,就可得出该乘方 结果。如果P是一个分数,例如Pnm,其中n和m 均为整数,则首先应该将A矩阵自乘n次,然后对结果再开m次方。24(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度后 赋给

11、D,即dijaj,m+1-i。25(7) 矩阵的超越函数MATLAB中exp( ),sqrt( ),sin( ),cos( )等基本函数命令可以直接使用在矩阵上,这种运算只 定义在矩阵的单个元素上,即分别对矩阵的每个元 素进行运算。超越数学函数,可以在函数后加上m而成为矩阵 的超越函数,例如expm(A),sqrtm(A),logm(A)分别为矩阵指数、矩阵开方和矩阵对数。矩阵的超越 函数要求运算的矩阵必须为方阵。263. 矩阵的特殊运算 (1) 矩阵行列式和矩阵求逆求逆:inv(A)求行列式:det(A)要求矩阵必须为方阵。a=1 2 3; 4 5 6; 2 3 5;b=inv(a)b =-

12、2.3333 0.3333 1.00002.6667 0.3333 -2.0000-0.6667 -0.3333 1.0000det(a)ans =-327(2) 矩阵的迹假设一个方阵为 Aaij, i,j=1,2,n;则矩阵A 的迹定义为即矩阵的迹为该矩阵对角线上各个元素之和。由代 数理论可知矩阵的迹和该矩阵的特征值之和是相同 的。在MATLAB中提供了求取矩阵迹的函数trace( ),其调用方法为trace(A)28(3) 矩阵的秩对于nm维的矩阵A,若矩阵所有的列向量中 共有 rc个线性无关,则称矩阵的列秩为rc,如果 rc=m, 则称A为列满秩矩阵;相应地,若矩阵A的 行向量中有rr个

13、是线性无关的,则称矩阵A的行秩为 rr, 如果rrn,则称A为行满秩矩阵。MATLAB提供了一个内部函数rank( )来用数值方法求取一个已知矩阵的秩,其调用格式为k=rank(A)29(4) 矩阵的三角分解矩阵的三角分解又称为LU分解,它的目的是将 一个矩阵A分解成一个下三角矩阵L和一个上三角矩 阵U的乘积,亦即可以写成ALU。在MATLAB下也给出了矩阵的LU分解函数lu( ),该函数的调用格式为L,U=lu(A)30(5) 矩阵的特征值与特征向量V,D=eig(A)其中:A为要处理的矩阵,D为一个对角矩阵,其对 角线上的元素为矩阵A的特征值,而每个特征值对 应的V矩阵的列为该特征值的特征

14、向量。该矩阵是 一个满秩矩阵,它满足AVVD,且每个特征向量 各元素的平方和均为1。如果调用该函数时只返回一 个变量D,则D为A的特征值。31(6) 矩阵的特征多项式、特征方程和特征根MATLAB提供了求取矩阵特征多项式系数的函数poly( ),其调用格式为P=poly(A)其中:A为给定的矩阵,返回值P为一个行向量, 其各个分量为矩阵A的降幂排列的特征多项式系数。即 P= a0 a1 an32MATLAB语言把多项式表达成一个行向量,该向量中的元素是按多项式降幂排列的。f(x)=a0xn+a1xn-1+ +an-1x+an可用行向量 p=a0 a1 an-1 an表示。 poly (A)1、

15、产生A矩阵特征多项式系数向量;2、求根向量A对应的多项式。v 特征多项式一定是n+1维的v 特征多项式第一个元素一定是133例: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 34MATLAB中根据矩阵特征多项式求特征 根的函数为roots( ),其调用格式为V=roots(P)其中:P为特征多项式的系数向量,而V为特征多项式的解,即原始矩阵的特征根。35例: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的特征值36当然我们可用poly令其返回多项式形式p2=poly(r)p2 =1.00 -6.00 -72.00 -27.00MATLAB规

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号