




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章 MATLAB的介绍与操作(一) Matlab 的基本元素 MATLAB的叙述以运算式为主, 其形式有二: variable = expression (指定运算式给一个变数) or expression (只是单纯一个运算式) 运算式由运算子, 纯数 , 矩阵, 函数, 变数或特殊文字等组成。 1. 纯数 有整数, 实数, 和复数 3 , -99 , 0.0001 , 1.60210E-20 , 6.022e23 2i , -3.14159i , -4+3i 1.1 四则运算 : ( + - * / or ) 与乘幂( ) 例 : (a) 1+2-3*4/5 %4/5 and 54 have the same value ans = 0.6000 (b) (2*3)2-100 ans = -64 注 : 1. 运算的顺序为 , * 或 / ( ) , + 或 - ,若有括弧, 则由括弧内运算优先。 2. a/b 表 a 除以 b , ab表 b 除以 a。 3. 我们可将运算式指定给一个变数, 然后其值被列印出来, 例如: value = (2*3)2-100 value = -64 4. 可在运算式后加上分号, 则结果将不会显示出来 1.2 Matlab 函数库 Matlab 中内建了许多函数, 以下列出少部份函数与一些例子 函 数 功 能 abs(x) 对实数为取绝对值, 对复数则取其magnitude sign(x) 当x为实数且0, =0, 0表示在主对角上方,k0在主对角下方 triu(A) 产生一与A同大小的矩阵,其主对角线以上的元素与A相同, 其余为零triu(A,k) 产生一与A同大小的矩阵,其第k对角线以上的元素与A相同, 其余为零tril(A) 其结果与triu(A)类似,只是将主对角线以上改为以下tril(A,k) 其结果与triu(A,k)类似,只是将主对角线以上改为以下 例: (1) A=1:4; 5:8; 9:12; 13:16 diag(A) %产生一行向量,其元素为A矩阵主对角线上的元素 A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16ans = 1 6 11 16 diag(diag(A) %当diag(A)是行向量时,则diag(diag(A)产生 %一主对角方阵,其主对角线上的元素为diag(A)。 ans = 1 0 0 0 0 6 0 0 0 0 11 0 0 0 0 16 x=-5 4 5; diag(x) ans = -5 0 0 0 4 0 0 0 -5 A=1:4; 5:8; 9:12; 13:16 diag(A,2) %产生一行向量,其元素为A矩阵第二对角线上的元素 A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16ans = 3 8 注: 当A为行向量或列向量时, 则diag(A,k)产生一方阵, 且其第k对 角线上的元素为A, 其余为零。 diag(diag(A,2),2) ans = 0 0 3 0 0 0 0 8 0 0 0 0 0 0 0 0 (2) A=1:2:7;9:2:15;17:2:23 %A不一定是方阵 triu(A) %产生一与A同大小的矩阵,其主对角线以上的元素与A相同, %其余为零 A = 1 3 5 7 9 11 13 15 17 19 21 23ans = 1 3 5 7 0 11 13 15 0 0 21 23 triu(A,-1) %triu(A,k)表示,产生一与A同大小的矩阵,其第k对角线以 %上的元素与A相同,其余为零 ans = 1 3 5 7 9 11 13 15 0 19 21 23 tril(A,-1) %tril(A,k)表示,产生一与A同大小的矩阵,其第k对角线以 %下的元素与A相同,其余为零 ans = 0 0 0 0 9 0 0 0 17 19 0 0 (e) 关于计算矩阵的函数(如 det , inv , rank 等) 例: (1) A=2 3 6;4 9 3;9 4 6; det(A) %此为求A矩阵的行列式值(determinant) ans = -297 (2) A=2 4 1; 4 5 4; 1 4 5; inv(A) %此为求A的反矩阵(inverse matrix) ans = -0.2571 0.4571 -0.3143 0.4571 -0.2571 0.1143 -0.3143 0.1143 0.1714 B=1:3; 4:6; 7:9; inv(B) Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 2.055969e-018.ans = 1.0e+016 * -0.4504 0.9007 -0.4504 0.9007 -1.8014 0.9007 -0.4504 0.9007 -0.4504 注:在此出现singular警告,是因为B矩阵的行列式值为零。 以上(1), (2)两个例子 ,皆需要求A矩阵为方阵 (3) A=1 3 5;4 5 4;1 5 1; rank(A) %决定A矩阵的秩数 ans = 3 (f) 统计向量(或矩阵)的函数 这些函数原则上以向量为主若是矩阵则逐一处理矩阵的行向量。 例: (1) x=1 -3 2 4 5; sum(x) %决定x列向量的元素值总和 ans = 9 (2) x=1 4 2 5 9 45 6; max(x) %决定x行向量中最大的元素值 ans = 45 (3) i=sqrt(-1); z=12+9.2*i;14-8*i;15;-16*i; min(z) %当z为复数时,min(z)回应向量z中最小magnitude值的元素 ans = 15 (4) A=1 2 3;4 5 6;7 8 9; prod(A) %当A为矩阵时,prod(A)将A矩阵每一行上的元素相乘, %存成一新的列向量 ans = 28 80 162 (5) A=1 2 3;4 5 6;7 8 9; mean(A) %当A为矩阵时,mean(A)取A矩阵每一行上元素的平均数 %(mean),存成一新的列向量 ans = 4 5 6 (6) i=sqrt(-1); z=2+i 3+5*i 2-3*i ; median(z) %当z为向量时,median(z)决定z所有元素的中位数 ans = 2.0000 - 3.0000i 4. 矩阵的除法运算 Matlab 提供了左除()与右除(/)两种 X = AB 即是解 A*X = B X = B/A 即是解 X*A = B 左除B必须与A有相同列数, 如果A是方阵则依照Gaussian Elimination 分解A成为LU, 然后解 A*X(:,j) = B(:,j), B(:,j)表示矩阵B的第j行。 如果A不是方阵则依照Householder Orthogonalization 分解A成为QR,然后解 under/over-determined 方程组A*X(:,j) = B(:,j), 依照最小平方差的意义。 右除 B/A = (A B) 例 1:试解联立方程组 2a - b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论