第2章MATLAB运算基础._第1页
第2章MATLAB运算基础._第2页
第2章MATLAB运算基础._第3页
第2章MATLAB运算基础._第4页
第2章MATLAB运算基础._第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 MATLAB 运算基础 (1)主要内容: 变量的定义及赋值; 数值数组、字符串数组、元胞数组和构架数组等数据类型; 矩阵运算的定义和规则; 数组运算的定义和规则。2.1.2 数据类型?数据类型包括数值型、字符串型、 元胞型、 构架型等。数值型有单精度型、 双精度型和整数型。整数型有ui nt 8, ui nt 16, ui nt 32和ui nt 64等无符号型和 i nt 8, i nt 16, i nt 32和i nt 64等符号型整数。?数值型数据可以用带小数点的形式和科学计数法表示, 数值 的表示范围是10-30910+309。?-20、1.25、2.88e-56(表示2.88

2、X 10-56)、7.68e204(表示7.68X 10204) 都是合法的数据表示。 。? 一般在 计 算 时采用双精度型,在输出时有多种数值显示格式 可供选 择。数值显示格式的设置通过 format 命令,格式如下:?f ormat short 默认设置,以5位数字形式输出 ?format l ong 以15位十进制数形式输出?f ormat short e 以5位十进制数加指数形式输出?format l ong e 以16位十进制数加指数形式输出? f or mat short g 从format short禾口format short e中自 动选择最佳输 出形式2.2 变量 2.2.

3、2变量的赋值 变量的赋值通常有两种形式:1 变量 =表达式2 表达 式 ?其中表达式是用运算符将有关运算量连接起来的式子,其结 果是一个数组。?形式1中,=代表的是赋值操作,将表达式的值赋给MATLAB 的变量;形式2中,将表达式的值赋给MATLAB的临时变量ans。例 2-1 在命令窗口输入下述语句,并按回车键执行,分别给变 量a、b、c赋值:a = 1 % a为标量b = 0 1% b为行向量c = 1 2; 3 4; 5 6% c为矩阵即二维数组2.2.3 特殊变量?eps?Real max?Real mi nMATLAB定义的正的极小值2. 2204e-16最大的正实数1. 7977e

4、+308最小的正实数2. 2251e- 308?Pi内建的n值?i , j虚数单位i =j =V -1?Infoo?NaN无法定义一个数目? Nar gi n函数输入参数个数? Nar gout函数输出参数个数?Fl ops浮点运算次数2.2.4内存变量的管理1 内存变量的显示与删除1 ) who用于显示在MATLAB工作空间中已经驻留的变量名清单。2) whos 在给出变量名的同时,还给出 它们 的大小、所占字节数及数据类型等 信息。3) cl ear 删除MATLAB工作空间中的变量。注 意,特殊变量不能被删除。例2-2 查询例 2-1 中语句执行后工作空间中的变量情况。2 工作空间浏览器

5、?工作空间浏览器窗口用于显示所有MATLAB工作空间中的 变量名、数据结构、类型、大小和字节数,也可以对变量进 行观察、编辑、提取和保存。3 内存变量文件例2-3: 例2-1 中语句执行后,在命令窗口 依次输入下述命令:2.3 数值数组2.3.1数值数组的建立1 赋 值语句建 立数组? 矩阵的建立可以通过赋值语句实现,赋值符号左边为变量 名,右边为矩阵元素。 矩阵元素应用 方括号( )括住,元素 可以是数值或表达式元素,表达式可以由数字、变量、运算 符和函数等组成。? 矩阵同行内的元素间用逗号或空格隔开,行与行之间用 分号或回车键隔开。例 2-4 在命令窗口输入语句:a=1,2,3;4,5,6

6、;7,8,9例 2-5 在命令窗口输入语句:x=-1.3 1+2+3 sqrt(5)例 2-6 在命令窗口输入下述语句,建立复数数组:b=1+2*i,2+3*i;2-i,3-2*ielfun函数库中提供一系列复数函数real复 数的实数部分real (b)1 mag复 数的虚数部分i mag( b)abs绝 对值或模abs( b)angl e幅 角angl e(b) 结果为弧度angl e(b)*180/pi 结果为角度conj 共 轭conj (b)2 简捷表达式例 2-7简捷表达式建立向量和矩阵2)使用linspace 和logspace函数生成向量 例2-8 用linspace 和log

7、space函数生成向量 t 1 =l i nspace( 0, 2* pi , 5) %从0到2*pi 等分成5个点l i nspace( 1, 8, 8)l i nspace( 1, 8, 1)t 2=l ogspace( 0, 2, 3)%从1到100(即100到102)按对数等分成3个点3 内建函数1 ) 通用特殊矩阵函数库el mat提供的常用的通用特殊矩阵 生成函数:?zeros?ones?eye?rand2)用于专门学科的特殊矩阵(1) 魔方矩阵magi c(n)( n=3)功能:魔方矩阵的元素由1到nx n的自然数组成,其对角 线上的元素为1;每行、每列及对角线上的元素之和均等于

8、 (n3+n)/ 2。魔方矩阵的每行、每列及两条对角线上的元素和 都相等。对于n阶魔方阵,其元素由1,2, 3,n2共n2个整数组 成。例2-9 产生 3阶魔方阵。?m=magi c( 3)%产生3阶魔方阵(2) 范得蒙矩阵vander(V)?生成以向量V为基础向量的范得蒙矩阵,矩阵元素最后 一列全为1,倒数第二列为一个指定的向量,其他各列 是其后列与倒数第二列的点乘积。可以用一个指定向 量生成一个范得蒙矩阵。例2-10 产生范得蒙矩阵。?v1=vander(1; 2; 3; 5 )(1:3)( 3)希尔伯特矩阵4 通过 MAT 数据文件加载矩阵2.3.2数组 (矩阵或向量 )元素的标识2矩阵

9、的标识例2-17 演示矩阵元素的标识和扩充矩阵的 方法a = 1 2; 3 4; 5 6 ;%建立一个2 x 3的矩阵a12=a(1, 2)%引用a( 1,2)的值a(3, 3)%引用a(3,3)的值,(3,3)超出 矩阵的 大 小, 出 错a( 3, 3) =9%扩充2x 3的矩阵为3X 3的矩阵,并给a( 3, 3)赋值2) 单下标方式 ( 按照列优先存储 )例:A=1 1 42308 7 2A(3,2)=7A(6)=7例2-18 演示矩阵元素的全下标标识和单下标标识的转换2.3.3 子数组2 矩阵一般情况如下:A(:, j )数组A的第j列全部元素A( i ,:)数组A的第i行全部元素A

10、( i , j )数组A的第i行第j列的元素A(:, j : L: j + n)数组A的第j列-第j +n列(下标增量为L)全部元素A( i : k: i +m):)数组a的第i行-第i +m行(下标增量为k)元素A( i : k: i +m, j : L: j +n)数组a的第i 行-第i +m行(下标增量为k)并在第j列-第j+n列(下标增量为L)全 部元素例2-19 演示建立行向量并取子数组的方法。a1=1.1, -2.2, 3. 3, -4. 4, 5.5;al ( 3)%取al的第三个元素a1( 1 4 ) %取a 1的第一个和第四个元素a1(1:2:5) %取a 1的第一个、第三个

11、和第五个元素,等价语句为:a1( 1: 2: end)例2-20演示建立3X 4的矩阵并取子数组的方法 。a= 1 2 3 4; 5 6 7 8; 9 10 11 12 ;a( 1, : )a( : , end)a24=a( 2, 4) %取a的第二行、第四列的元素a( 1: 2: 4, : )a( : , 1: 2: end)a1=a( 1, 2 , 2, 3, 4 )a2=a( 1, 2 , 2, 3, 1 )a3=a( 3, 1 , : )a( 1, 3 , 2, 4 ) =zer os( 2)%对a(1,3 ,2,4)赋值2.3.4数组元素的删除数组元素的删除是简单地通过赋值为空( 用

12、 表示) 实现的。 通过赋值为空,可以实现删除一行元素、 一列元素、子数组和 整个数组。注意区分空矩阵和零矩阵:空矩阵是0X0的数组,而零矩阵是元素为零的mx n的数组。例2-23建立3X 3的数组,实现数组元素的删除。a= 1 2 0; 3 4 0; 5 6 9 ;a( : , 3) = %删除第三列元素a( 2, : ) = %删除第二行元素a( 1) = %删除一个元素,则矩阵变为行向量a= %删除所有元素为空矩阵2.3.5 多维数组例 2-24 演示全下标元素赋值方式建立三维数组的方法。b= 1 1; 2 2 ;%先创建二维数组b( : , : , 2) =5%扩展数组例2-25 演示

13、生成函数 ones、zeros、rand和randn直接创建多 维数组的方法。ones( 2, 3, 4)例2-26演示cat和repmat函数的功能。a=1 2 ;3 4;b= 56;78;cat(1,a,b)a=1 2 ;3 4;b= 56;78;cat(2,a,b)2 多维数组的信息例2-27 演示ndims , size和numeI函数的功能。x = ones( 1, 8) ; n = l engt h( x)%建立任意的1 x 8的数组xy=zer os(3, 5) ; d=si ze( y)%建立任意的3 x 5的数组y m n =si ze(y), ndi ms(y),numel

14、 (y),mm=si ze(y,1),nn=si ze(y,2) z= r and(2, 10, 3) ;%建立任意的2 x 10x 3的数组yn = l engt h(z)矩阵的合并C=A;BA和B的列数必须相同,B补在A的下面C=A,BA和B的行数必须相同,B补在A的右面矩阵转置A=B矩阵展开C=A(:) 把内存中实际存放形式展开,按列存放的格式? 矩阵行列式? 矩阵与行列式是两个完全不同的概念 .矩阵仅仅是一个矩形的 “数表 ”,行列式是在一个方形数表中根据定义规则进行运算的代数式,这是基本的区别.?逆矩阵对于n阶方阵A,如果有一个n阶方阵B,使得AB=BA=E。等价于 AA=A,A=E

15、.(E为单位阵eye(n)主对角线元素为1,其余元素为0) 则称矩阵A是可逆的,并把方阵B称为A的逆阵(i nverse matrix)。A是可逆矩阵的充分必要条件是|A| = 0教材P106107页?从已知矩阵生成新的矩阵? diag(A)生成有A对角线元素组成的列向量? diag(A,k)?k=0为主对角线?k0为主对角线以下第k条对角线? diag(X)生成以向量X为主对角线,其余元素为零的矩阵X的长度+|K|? diag(X,K)生成以向量X为第k条对角线元素,其他元素为零的 阶方阵?triu(A)生成一个主对角线及以上元素是A的元素,其余元素为0的 上三角矩阵?triu(A,K)生成

16、一个第K条对角线及以上元素是A的元素,其余元素 为0的上三角矩阵?tril(A)生成一个主对角线及以下元素是A的元素,其余元素为0的下 三角矩阵?tril(A,K)生成一个第K条对角线及下上元素是A的元素,其余元素 为0的下三角矩阵? blkdiag (a,b,c)以a,b,c为主对角线,?其余元素都为零的方阵? compan (u)生成以向量X为多项式系数向量的多项式的伴随矩阵?(第一行元素为-u(2:n)/u(1)2.4 MATLAB 运算 p1162.4.1算术运算1.基本算术运算MATLAB的基本算术运算有:+ (加卜-(减)、*(乘)、 /(右除)、(左除)、八(乘方)。注意,运算是

17、在矩阵意义下进行的,单个数据的算术运算只 是一种特例。矩阵的基本运算p116? (1)矩阵的基本运算A实数矩阵的转置,若A复数计算的A的共轭矩阵(每个元素取共轭, 再转置)A .复数的共轭rot90(A,k)将矩阵A逆时针旋转90啲k倍,当k为1时可省略。fliplr(A)对矩阵实施左右翻转180oflipud(A)对矩阵A实施上下翻转180oflipdim (A, dim)dim=1= flipud (A)dim=2= fliplr (A)?repmat(A,m,n)将A作为一个子矩阵,复制一个m*n的矩阵教材例P11722, 23, 24, 25(2)矩阵加减运算运算规则是:a. 若A和B

18、矩阵的维数相同,A+B, A-B实现矩阵的加减运算,是矩阵的相应元 素相加减。b. A与B的维数不相同,则MATLAB将给出错误信 息,提示用户两个矩阵的维数不匹配。P121 表4-5 矩阵的 乘法运算 正常乘法 A* B假定有两个矩阵A和B,若A为m x n矩阵,B为n x p矩阵,贝2 = A*B为m x p矩阵。 数乘 a*A a为标量,A为矩阵,用a乘以A的每一个元素 点乘 A.*B要求两矩阵维数必须相同, 为对应元素相乘标量积dot ( A,B) A.*B后,各各列元素相加,得到一个行向量dot( A, B, dim)A.* B后,dim=1 各列元素相加,得到一个行向量dim=2各

19、行元素相加,得到一个列向量(4) 矩阵除法在MATLAB中,有两种矩阵除法运算:和/,分别表示左除和 右除。如果A矩阵是非奇异方阵,则A B和B/A运算可以实现。一般A B 工 B/A。A B=inv(A)* B, AX=BA为n*n方阵,B为n*1列向量,求解X为n*1列向量B/A=B*inv(A), XA=BA为n*n方阵,B为1*n列向量,求解X为1*n行向量? 元素左除 .? 计算两矩阵的元素左除矩阵? A. B是指B的各元素除以A的对应元素? 元素右除 ./? A./B是指A的各元素除以B的对应元素此时要求两矩阵维数相同?P124 例题 3031(5)逆矩阵?方阵A的逆矩阵A-1=i

20、nv (A)(6) 矩阵 的 乘方矩阵的乘方AAb一个矩阵的乘方运算可以表示成AAx,要求A为方阵,x为标量矩阵元素的乘方 A.Ab2,4.A3 ans=8 64数的矩阵元素乘方 b.AA3.A2,4ans=9 81( 7)矩阵行列式、秩,迹?行列式:一一det(A) A为方阵?秩:矩阵的秩是方阵经过初等行变换或者列变换后的行秩或 列秩,不为零的行数或列数rank (A)?迹:主对角线元素之和成为矩阵的迹 trace (A)2.4.2 关系运算MATLAB提供了 6种关系运算符:(小于)、(大于)=(大于或等于)=(等于)=(不等于)。关系运算符的运算法则为:a. 两个比 较量是标量时:直接比

21、较两数的大小。若关系 成立,关系表达式结果为1,否则为0。b. 两个维数相同的矩阵时:比较是对两矩阵相同位 置的 元素按标量关系运算规则逐个进行,并给出元素比较结果。 最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它 的元素由0或1组成。c. 一个是标量,一 个是矩阵时:则把标量与矩阵的每 一个元素按标量关系运算规则逐个比较,并给出元素比较结 果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵, 它的元素由 0或1组成。示例(1)23ans=0(2)21 2;3 4ans=1000(3)0 2;474) 显示的是 大于4的元素的单下标值disp(A4) 满足条件的 用1表示,不满足条件的

22、用0xor(x,y)异或运算,x和y都是零或都是非零时为假0,不同时 为真1any(x) 如果在一个向量中, 任一元素是非零,返回1;矩阵 x中的每一列有非零元素,返回1,否则返回零all(x) 如果在一个向量中, 所有元素非零, 返回 1 ;矩阵x中的每一列所有元素非零,返回1,否则返回零? A=1 2;34? B=01;07 ? xor(A,B) ?ans= 1 0 ?1 ?any(A) ? ans=1,1 ?any(B) ? ans=0, 1 ?all(A) ? ans=1 1 ?all(B) ? ans=0,1P141 矩阵的特征值和特征向量概念:?特征值:这设矩阵A是一个n阶方阵,如

23、果存在数a和一个非零列向量 X,使得AX=aX,则数a成为A的特征值特征向量:向量X称为A对应于特征值a的特征向量 特征值向量:n阶方阵A的n个特征值组成的向量?eig(A)计算n阶方政A的特征值向量?X,D=eig(A)?X的列对应A的特征向量?D的对角线元素是A的特征值A=1 2; 34eig(A)? ans= -0.3723? 5.3723 X,D=eig(A)?X=? -0.8246 -0.4160? 0.5658 -0.9094?D=? -0.3723 0? 0 5.3723 矩阵的分解 p144? 又称为矩阵的因式分解,就是把一个复杂的矩阵分解成两个或两个以 上特殊矩阵或简单矩阵的

24、乘积。? (1) LU分解(三角分解),把一个方阵A分解为同阶的一个下上角L 和上三角U, IPA=L*U? (2)Cholesky分解是一个对称的正定方阵A分解为上三角矩阵与其转置 矩阵的乘积,? 即 A=L*L? L为上三角矩阵? 注:正定矩阵特征值都为正数L,U=lu(A) 例:50L=chol(A)例 51P167多项式运算?1 、多 项 式的表 示和输入 多项式用一个向量表示,按照多项式系数的降幂排列分配个各 项,没有的系数补零。例:xA5-3xA4+2x+10p=1,-3,0,0 ,2,10?矩阵的特征多项式:?|aE-A|为矩阵A的特征多项式?P=poly (A)求A特征多项式的系数?poly2sym ( P)具体显示A的特征多项式表达式?p168 例1,2,3?2.多项式的值和根? polyval (p, x)计算多项式p的值,在x处的值,x为标量,一个值,?X为向量,既是求多项式在 每个X处的值? roots(p)计算多项式p的根,即? p( x) =0的解?P169 例 4 , 73. P172 多项式拟合和插值 ?多项式的拟合:根据已知的数据点寻找最接近数据点的多项式曲线。用函数polyfit实现?多

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论