matlab-simulink的数值运算

上传人:san****019 文档编号:70866415 上传时间:2019-01-18 格式:PPT 页数:60 大小:728.81KB
返回 下载 相关 举报
matlab-simulink的数值运算_第1页
第1页 / 共60页
matlab-simulink的数值运算_第2页
第2页 / 共60页
matlab-simulink的数值运算_第3页
第3页 / 共60页
matlab-simulink的数值运算_第4页
第4页 / 共60页
matlab-simulink的数值运算_第5页
第5页 / 共60页
点击查看更多>>
资源描述

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

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

2、当作一个标量; 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,简单矩阵的输入,对于比较大的矩阵,可以用回车键代替分号,对每一行的内容分行输入,也可利用续行符号(),

3、把一行的内容分两行来输入。例如, 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省略

4、,则可以认为自增步距为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)函数测试,则返回该矩阵行、列的最大

5、值,即该函数等效于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列的元素赋为

6、100,则可通过下面的语句来完成 A(2,3)=100 结果显示: A= 1 2 3 4 5 100 7 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行

7、到第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) 上三角矩阵函数tr

8、iu( )和下三角矩阵函数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-7i b = 1.0000 - 2.0000i 2.0000 + 7.0000i b=1+2i 2-7i. b = 1.0000 + 2.0000i

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

10、讲,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,

11、即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.

12、 矩阵的特殊运算,(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.0000 det(a) ans = -3,28,(2) 矩阵的迹 假设一个方阵为 Aaij, i,j=1,2,n;则矩阵A的迹定义为 即矩阵的迹为该矩阵对角线上各个元素之和。由代数理论可知矩阵的迹和该矩阵的特征值之和是相同的。 在MATLAB中提供了求取矩阵迹的函数trace( ),其调用

13、方法为 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( ),该函

14、数的调用格式为 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

15、 a1 an,33,MATLAB语言把多项式表达成一个行向量,该向量中的元素是按多项式降幂排列的。 f(x)=a0xn+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.00 p是多项式p(x)=x3-6x2-72x-27的MATLAB描述方法,我们可用函数文件,显示数学多项式的形式: p1=po

16、ly2sym(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.00 r=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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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