MATLAB数值计算1.ppt_第1页
MATLAB数值计算1.ppt_第2页
MATLAB数值计算1.ppt_第3页
MATLAB数值计算1.ppt_第4页
MATLAB数值计算1.ppt_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

MATLAB 的数值运算,制作: 陈学明,创建矩阵的规则,矩阵元素必须用 括住 矩阵元素必须用逗号或空格分隔 在 内矩阵的行与行之间必须用分号分隔 当一个指令或矩阵太长时,可用续行 例:y=2, 4, 5; 3 6 8,矩阵元素,矩阵元素可以是任何matlab表达式 ,可以是实数 ,也可以是复数,复数可用特殊函数i,j 输入。大的矩阵可以用分行输入,回车键代表分号。 a=1 2 3;4 5 6 x=2 pi/2; sqrt(3) 3+5i,用matlab函数创建矩阵,空阵 matlab允许输入空阵,当一项操作无结果时,返回空阵。 rand 随机矩阵 eye 单位矩阵 zeros 全部元素都为0的矩阵 ones 全部元素都为1的矩阵 diag 产生对角矩阵,矩阵下标与子矩阵提取,A(m, n) 提取第m行,第n列元素 A(:, n) 提取第n列元素 A(m, :) 提取第m行元素 A(m1:m2, n1:n2) 提取第m1行到第m2行和第n1列到第n2 列的所有元素 A(m:end, n) 提取从第m行到最末行和第n列的子块 A(:) 得到一个长列矢量,该矢量的元素按矩 阵的列进行排列,例:假如A是一个已知10*10的方阵,那么: (1)A(:,3) (2) A(5,:) (3) A(1:5,3) (4)A(1:5,7:10) (5) A(1 3 5 ,2 4 6) (6) A(:,7:-1:3) (7) A(:,2 4)= (1)是A的第3列元素构成的列向量; (2)是A的第5行元素构成的行向量; (3)是A的前5行的第3列元素构成的列向量; (4)是A的前5行,第7到第10列元素构成的子矩阵; (5)A第1、3、5行,第2、4、6列元素构成的子矩阵; (6)A的第7、6、5、4、3列元素构成的子矩阵. (7)把A的第2、4列删除,形成A的一个子矩阵.,矩阵的修改,(1)直接修改 可用键找到所要修改的矩阵,用键移动到要修改的矩阵元素上即可修改。 (2)指令修改 可以用A(, )= 来修改。 (3)由矩阵编辑器修改 由Matlab提供工具栏按钮来查看工作区变量,单击变量,可以打开或删除变量,例: 修改矩阵A中元素的数值 A=1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16; A(1,1)=0;A(2,2)=A(1,2)+A(2,1);A(4,4)=cos(0); 则矩阵变为: A = 0 2 3 4 5 7 7 8 9 10 11 12 13 14 15 1,数据的保存,把Matlab工作空间中一些有用的数据长久保存下来的方法是生成mat数据文件。 save 将工作空间中所有的变量存到Matlab.mat文件中 save data将工作空间中所有的变量存到data.mat文件中。 save data a b 将工作空间中a和b变量存到data.mat文件中。,数据的获取,运行Matlab时即可用load指令调用已生成的mat文件。 load load data load data a b ,矩阵加、减(,)运算,规则: 相加、减的两矩阵必须有相同的行和列两矩阵对应元素相加减。 允许参与运算的两矩阵之一是标量。标量与矩阵的所有元素分别进行加减操作。,矩阵乘()运算,规则: A矩阵的列数必须等于B矩阵的行数 标量可与任何矩阵相乘。 例:a=1 2 3;4 5 6;7 8 0;b=1;2;3;c=a*b c =14 32 23,注:一个n行m列的矩阵可以乘以一个m行p列的矩阵,得到的结果是一个n行p列的矩阵,其中的第i行第j列位置上的数等于前一个矩阵第i行上的m个数与后一个矩阵第j列上的m个数对应相乘后所有m个乘积的和。,矩阵除( ,/)运算,矩阵除的运算在线性代数中没有,有矩阵逆的运算,在Matlab中有两种矩阵除运算: (左除) /(右除) AB为方程AXB的解 B/A为方程XAB的解 AB=inv(A)*B B/A=B*inv(A) B/A=(AB),矩阵的一些特殊操作,矩阵的变维 a=1:12,b=reshape(a,3,4) %b为3行4列 c=zeros(3,4);c(:)=a(:) 矩阵的变向 rot90:旋转(逆时针); fliplr:左右翻; flipud:上下翻 矩阵的抽取 diag:抽取主对角线;tril: 抽取主下三角; triu:抽取主上三角,例:a=1 2 3;4 5 6;7 8 9 , b=rot90(a),c=flipud(a),d=fliplr(a) a =1 2 3 4 5 6 7 8 9 b =3 6 9 2 5 8 c =7 8 9 4 5 6 1 2 3 d =3 2 1 6 5 4 9 8 7,矩阵的乘方,a p a 自乘p次幂,方阵,1的整数,对于p的其它值,计算将涉及特征值和特征向量,如果p是矩阵,a是标量,则ap使用特征值和特征向量自乘到p次幂;如a,p都是矩阵,ap则无意义。 当一个方阵有复数特征值或负实特征值时,非整数幂是复数阵,特殊的应用矩阵,约当阵将状态空间模型转换为约当标准形形式:jordan(a) 得到矩阵a的约当标准形 V,J=jordan(a) J为约当标准形,V为相似变换阵,满足Va*V=J. 例:a=1,2;3,4;J=jordan(a),V,JJ=jordan(a) J = 5.3723 0 0 -0.3723 V = 0.2389 0.7611 0.5222 -0.5222 JJ = 5.3723 0 0 -0.3723,特殊的应用矩阵,伴随矩阵将状态空间模型转换为可控标准形 compan(p) 获得多项式P的伴随矩阵 p=1 2 3,a=compan(p) p = 1 2 3 a = -2 -3 1 0,特殊的应用矩阵,格雷姆(Gram)矩阵计算可控性和可观性格雷姆阵 Gc=gram(G,c) 计算稳定系统G的可控性格雷姆矩阵Gc Go=gram(G,o) 计算稳定系统G的观测性性格雷姆矩阵Go,关系运算,关系运算符: (大于) =(大于或等于)、=(等于)、=(不等于)。 关系运算符的运算法则: 关系运算将对两个矩阵的对应元素进行比较。 必须是两个同维矩阵或其中一个矩阵为标量才能进行 MATLAB提供了一些逻辑函数,常用的逻辑函数,常用的矩阵函数,矩阵的行列式、矩阵的秩、特征值等在现代控制理论中有广泛的应用,Matlab提供了相应的函数求其值 det(A) 方阵A的行列式 eig(A) 方阵A的特征值和特征向量 rank(A) 矩阵A的秩 trace(A) 矩阵A的迹 expm(A) 矩阵的指数 sqrtm(A) 求矩阵的平方根 funm(A,fun) 求一般的方阵函数,求解线性方程,信号处理、控制理论、物理学等领域中的很多问题都可以归结到下面的线性方程组,矩阵行列式,如N阶矩阵A的行列式不等于0,即时,称矩阵A非奇异,否则A奇异。当线性方程系数矩阵非奇异,则线性方程有唯一解。对N阶方阵A,MATLAB中由函数得到行列式,矩阵条件数,矩阵特征值和特征向量,矩阵分解,矩阵分解通过将复杂矩阵表示成形式简单或具有良好数学性质(统称为简单矩阵)的组合,以便于理论分析或数值计算。通常矩阵分解将复杂矩阵分解为几个简单矩阵的乘积。求解线性方程组不可避免地要用到矩阵分解的概念。 MATLAB中,线性方程组的求解主要用到三种基本的矩阵分解,即对称正定矩阵的cholesky分解、一般方程的gaussian消去法和矩阵的正交分解。这三种分解由函数chol、lu和qr完成。,正定矩阵,正定矩阵的判定 判定定理1:对称阵A为正定的充分必要条件是:A的特征值全为正。 判定定理2:对称阵A为正定的充分必要条件是:A的各阶顺序主子式都为正。 判定定理3:任意阵A为正定的充分必要条件是:A合同于单位阵。,正定矩阵,正定矩阵的性质: 1.正定矩阵一定是非奇异的。非奇异矩阵的定义:若n阶矩阵A的行列式不为零,即 |A|0,则称A为非奇异矩 2.正定矩阵的任一主子矩阵也是正定矩阵。 3.若A为n阶对称正定矩阵,则存在唯一的主对角线元素都是正数的下三角阵L,使得A=L*L,此分解式称为正定矩阵的乔列斯基(Cholesky)分解。,Cholesky分解,如果A为n阶对称正定矩阵,则存在一个实的非奇异上三角阵R,满足R*R = A,称为Cholesky分解(P71例3-15) Matlab使用函数chol实现Cholesky分解,其格式为: R = chol(A) 若A非正定,则产生错误信息。 R,p = chol(A) 不产生任何错误信息,若A为正定阵,则p=0,R与上相同;若A非正定,则p为正整数,R是有序的上三角阵。,lu分解,lu分解的含义 1u分解是除法运算的基础。gaussian消去法或lu分解是将任何方阵X表示为一个下三角矩阵L和一个上三角矩阵U的乘积,即X=LU。线性代数中已经证明,只要方阵A是非奇异的,LU分解总是可以进行的。 lu分解的条件 进行lu分解时,矩阵X必须是方阵。,lu分解,MATLAB提供的lu函数用于对矩阵进行LU分解,其调用格式为: L,U=lu(X):产生一个上三角阵U和一个变换形式的下三角阵L(行交换),使之满足X=LU。注意,这里的矩阵X必须是方阵。 L,U,P=lu(X):产生一个上三角阵U和一个下三角阵L以及一个置换矩阵P,使之满足PX=LU。当然矩阵X同样必须是方阵。 实现LU分解后,线性方程组Ax=b的解x=U(Lb)或x=U(LPb),这样可以大大提高运算速度。,qr分解,qr分解的含义 qr分解即矩阵的正交分解,是将矩阵X分解为一个正交矩阵Q和一个上三角矩阵R的乘积,即X=QR。 适用条件及范围 qr分解适用于方阵,是非常重要的分解形式。,QR分解,Matlab使用函数qr实现QR分解,其格式为: Q,R = qr(A) Q,R,E = qr(A) 求得正交矩阵Q和上三角阵R,E为单位矩阵的变换形式,R的对角线元素按大小降序排列,满足AE=QR。 Q,R = qr(A,0) R = qr(A,0),奇异值分解,奇异值分解也是矩阵求秩运算的基础,对矩阵A进行奇异值分解S=svd(A),得到向量s的非零元素的个数就是矩阵A的秩。,奇异值分解,U,S,V=svd(X) 产生一个与矩阵X具有相同维数的矩阵S,其对角线元素为递减的非负值,同时得到酉矩阵U和V,使得X=U*S*V; U,S,V=svd(X,0) 得到一个“经济大小”的分解结果,如果X是mn矩阵且mn,则只计算U矩阵的前n行,且S矩阵是nn阶的。 S=svd(X,0) 得到矩阵X的奇异值组成的向量;,多项式与插值,多项式在数学中有着极为重要的作用,同时多项式的运算也是工程和应用中经常遇到的问题。MATLAB 提供了一些专门用于处理多项式的函数,用户可以应用这些函数对多项式进行操作。MATLAB 中对多项式的操作包括多项式求根、多项式的四则运算及多项式的微积分。,多项式的表示方式,多项式的 MATLAB表示法: 如:PS32S23S4 MATLAB可表示为系数向量 P1 2 3 4,多项式的四则运算,由于多项式是利用向量来表示,多项式的四则运算可以转化为向量的运算。 多项式的加减为对应项系数的加减,因此可以通过向量的加减来实现。但是在向量的加减中两个向量需要有相同的长度,因此在进行多项式加减时,需要将短的向量前面补 0。 多项式的乘法实际上是多项式系数向量之间的卷积运算,可以通过 MATLAB 中的卷积函数 conv 来完成。 多项式的除法为乘法的逆运算,可以通过反卷积函数 deconv 来实现。,多项式的其他运算,除多项式的四则运算外,MATLAB 还提供了多项式的一些其他运算。如表所示。,多项式的运算函数(1),roots 函数和 poly 函数 这两个函数为功能互逆的两个函数。roots 函数用于求解多项式的根。该函数的输入参数为多项式的系数组成的行向量,返回值为由多项式的根组成的列向量。poly 函数用于生成根为制定数值的多项式。 polyval 函数 polyval 函数用于多项式求值。对于给定的多项式,利用该函数可以计算该多项式在任意点的值。,多项式的运算函数(2),polyder 函数 函数 polyder 用于多项式求导。该函数可以用于求解一个多项式的导数、两个多项式乘积的导数和两个多项式商的导数。该函数的用法为: q = polyder(p) 该命令计算多项式 p 的导数。 c = polyder(a,b) 该命令实现多项式 a、b 的积的导数。 q,d = polyder(a,b) 该命令实现多项式a、b 的商的导数,q/d 为最后的结果。,若已知多项式根向量,可用poly(P)生成多项式 【例】 已知 P1(s)(s+1)(s+2)(s+3)的 根为: -1 -2 -3 则编写:P1poly(-1,-2,-3) 运行后,得 P1 1 6 11 6 表示已生成多项式为:P=s3+6s2+11s+6,多项式的生成,多项式运算(1),1求多项式值 polyval(p,x0) V=polyval(P1,1) V=24 2多项式加、减: * 阶次相同,低阶缺项系数必须补0 【例】: (s2+2s+1)+ 2s2 P1= 1 2 1; P

温馨提示

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

评论

0/150

提交评论