2013第三讲Matlab矩阵分析与处理.ppt

上传人:xin****828 文档编号:15720818 上传时间:2020-09-01 格式:PPT 页数:43 大小:964.05KB
返回 下载 相关 举报
2013第三讲Matlab矩阵分析与处理.ppt_第1页
第1页 / 共43页
2013第三讲Matlab矩阵分析与处理.ppt_第2页
第2页 / 共43页
2013第三讲Matlab矩阵分析与处理.ppt_第3页
第3页 / 共43页
点击查看更多>>
资源描述
第三讲 Matlab矩阵分析与处理,主讲人:祁荣宾,第三讲 主要内容,特殊矩阵 矩阵结构变换 矩阵求逆与线性方程组求解 矩阵求值 矩阵的特征值与特征向量 矩阵的超越函数,1、特殊矩阵,(1)通用的特殊矩阵,常用的产生通用特殊矩阵的函数有: zeros:产生全0矩阵(零矩阵) ones:产生全1矩阵(幺矩阵) eye:产生单位矩阵 rand:产生01间均匀分布的随机矩阵 randn:产生均值为0,方差为1的标准正态分布随机矩阵,1、特殊矩阵,(1)通用的特殊矩阵,zeros(m)建立一个mm零矩阵; zeros(m,n)建立一个mn零矩阵。 可以用zeros(size(A)建立一个与矩阵A同样大小零矩阵。,1、特殊矩阵,(1)通用的特殊矩阵, zeros(3) ans = 0 0 0 0 0 0 0 0 0 zeros(3,2) ans = 0 0 0 0 0 0, A=1 2 3;4 5 6 A = 1 2 3 4 5 6 zeros(size(A) ans = 0 0 0 0 0 0,1、特殊矩阵,在区间20,50内均匀分布的5阶随机矩阵 均值为0.6、方差为0.1的5阶正态分布随机矩阵, x=20+(50-20)*rand(5) x = 48.5039 42.8629 38.4630 32.1712 21.7367 26.9342 33.6940 43.7581 48.0641 30.5860 38.2053 20.5551 47.6544 47.5071 44.3950 34.5795 44.6422 42.1462 32.3081 20.2958 46.7390 33.3411 25.2880 46.8095 24.1667, y=0.6+sqrt(0.1)*randn(5) y = 0.4632 0.9766 0.5410 0.6360 0.6931 0.0733 0.9760 0.8295 0.9373 0.1775 0.6396 0.5881 0.4140 0.6187 0.8259 0.6910 0.7035 1.2904 0.5698 1.1134 0.2375 0.6552 0.5569 0.3368 0.3812,1、特殊矩阵,(2)用于专门学科的特殊矩阵 魔方矩阵,魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。 对于n阶魔方阵,其元素由1,2,3,n2共n2个整数组成。 求魔方矩阵的函数magic(n) 。,1、特殊矩阵,例:将101125等25个数填入一个5行5列的表格中,使其每行每列及对角线的和均为565。, M=100+magic(5) M = 117 124 101 108 115 123 105 107 114 116 104 106 113 120 122 110 112 119 121 103 111 118 125 102 109,1、特殊矩阵,生成魔方矩阵的算法: 首先在矩阵第一行中间的位置上放1; 把数字按照升序沿着右上角放置到矩阵中; 如果越界了,就假设周围还有一个矩阵,将数字放到那个位置上; 如果那个位置已经被占据了,就跳过该位置放置到下面的位置,然后重新按照原来的方法放。, A=magic(5) A = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 image(3*A),1、特殊矩阵,1、特殊矩阵,范得蒙德矩阵,范得蒙德(Vandermonde)矩阵最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积。 可以用一个指定向量生成一个范得蒙德矩阵。 vander(V)生成以向量V为基础向量的范得蒙德矩阵。,例如,A=vander(1;2;3;5) 即可得到范得蒙德矩阵。 A=vander(1;2;3;5) A = 1 1 1 1 8 4 2 1 27 9 3 1 125 25 5 1,1、特殊矩阵,1、特殊矩阵,1、特殊矩阵,1、特殊矩阵,1、特殊矩阵,希尔伯特矩阵,希尔伯特矩阵的每个元素是 生成希尔伯特矩阵的函数是hilb(n); 希尔伯特矩阵是一个条件数很差的矩阵,使用一般方法求逆会因为原始数据的微小扰动而产生不可靠的计算结果; MATLAB中,有一个专门求n阶的希尔伯特矩阵的逆函数invhilb(n) 。,1、特殊矩阵,希尔伯特矩阵,例如,求4阶希尔伯特矩阵及其逆矩阵, format rat %以有理形式输出 H=hilb(4) H = 1 1/2 1/3 1/4 1/2 1/3 1/4 1/5 1/3 1/4 1/5 1/6 1/4 1/5 1/6 1/7 H=invhilb(4) H = 16 -120 240 -140 -120 1200 -2700 1680 240 -2700 6480 -4200 -140 1680 -4200 2800 format short %恢复默认输出格式,1、特殊矩阵,托普利兹矩阵,托普利兹(Toeplitz)矩阵除第一行第一列外,其他每个元素都与左上角的元素相同。 生成托普利兹矩阵的函数是toeplitz(x,y),它生成一个以x为第一列,y为第一行的托普利兹矩阵。 这里x, y均为向量,两者不必等长。 toeplitz(x)用向量x生成一个对称的托普利兹矩阵。, toeplitz(1:6) ans = 1 2 3 4 5 6 2 1 2 3 4 5 3 2 1 2 3 4 4 3 2 1 2 3 5 4 3 2 1 2 6 5 4 3 2 1,1、特殊矩阵,伴随矩阵,称矩阵A为多项式的伴随矩阵。,生成伴随矩阵的函数是compan(p),其中p是一个多项式的系数向量,高次幂系数排在前,低次幂排在后。,例如,为了求多项式的x3-7x+6的伴随矩阵: p=1,0,-7,6; compan(p) ans = 0 7 -6 1 0 0 0 1 0,1、特殊矩阵,帕斯卡矩阵,二次项(x+y)n展开后的系数随n的增大组成一个三角形表,称为杨辉三角形。 由杨辉三角形表组成的矩阵称为帕斯卡(Pascal)矩阵。 函数pascal(n)生成一个n阶帕斯卡矩阵。,例2-7 求(x+y)5的展开式 pascal(6) ans = 1 1 1 1 1 1 1 2 3 4 5 6 1 3 6 10 15 21 1 4 10 20 35 56 1 5 15 35 70 126 1 6 21 56 126 252,2、矩阵结构变换,(1)对角阵,只有对角线上有非0元素的矩阵称为对角矩阵; 对角线上的元素相等的对角矩阵称为数量矩阵; 对角线上的元素都为1的对角矩阵称为单位矩阵。, A=1 2 3;4 5 6 A = 1 2 3 4 5 6 D=diag(A) D = 1 5 D1=diag(A,1) D1 = 2 6 D2=diag(A,-1) D2 = 4,设A为mn矩阵,diag(A)函数用于提取矩阵A主对角线元素,产生一个具有min(m,n)个元素的列向量。 diag(A)函数还有一种形式diag(A,k),其功能是提取第k条对角线的元素。,提取矩阵的对角线元素,2、矩阵结构变换,构造对角矩阵,设V为具有m个元素的向量,diag(V)将产生一个mm对角矩阵,其主对角线元素即为向量V的元素。, diag (1,2,-1,4) ans = 1 0 0 0 0 2 0 0 0 0 -1 0 0 0 0 4,diag(V,k),其功能是产生一个nn(n=m+|k|)对角阵,其第k条对角线的元素即为向量V的元素。, diag(1:3,-1) ans = 0 0 0 0 1 0 0 0 0 2 0 0 0 0 3 0,2、矩阵结构变换,A = 17 0 1 0 15 23 5 7 14 16 4 0 13 0 22 10 12 19 21 3 11 1 25 2 19 D=diag(1:5);,D*A,用D左乘A,对A的每行乘以一个指定常数; A*D,用D右乘A,对A的每列乘以一个指定常数;, D*A ans = 17 0 1 0 15 46 10 14 28 32 12 0 39 0 66 40 48 76 84 12 55 5 125 10 95, A*D ans = 17 0 3 0 75 23 10 21 56 80 4 0 39 0 110 10 24 57 84 15 11 2 75 8 95,2、矩阵结构变换,A = 1 2 3 4 5 11 22 33 44 55 11 12 13 14 15 21 22 23 24 25 31 32 33 34 35,三角矩阵分为上三角阵和下三角阵:, triu(A) ans = 1 2 3 4 5 0 22 33 44 55 0 0 13 14 15 0 0 0 24 25 0 0 0 0 35, triu(A,2) ans = 0 0 3 4 5 0 0 0 44 55 0 0 0 0 15 0 0 0 0 0 0 0 0 0 0,(2)三角矩阵,上三角矩阵的函数是triu(A),另一种形式triu(A,k),其功能是求矩阵A的第k条对角线以上的元素。 下三角矩阵的函数是tril(A)和tril(A,k) 。,2、矩阵结构变换,A = 1 2 3 4 5 11 22 33 44 55 11 12 13 14 15 21 22 23 24 25 31 32 33 34 35,转置运算符是单撇号( ), A ans = 1 11 11 21 31 2 22 12 22 32 3 33 13 23 33 4 44 14 24 34 5 55 15 25 35,(3)矩阵的转置,2、矩阵结构变换,A = 1 2 3 4 5 11 22 33 44 55 11 12 13 14 15 21 22 23 24 25 31 32 33 34 35, rot90(A) ans = 5 55 15 25 35 4 44 14 24 34 3 33 13 23 33 2 22 12 22 32 1 11 11 21 31,(4)矩阵的旋转,利用函数rot90(A,k)将矩阵A按逆时针方向旋转90的k倍,当k为1时可省略。, rot90(A,4) ans = 1 2 3 4 5 11 22 33 44 55 11 12 13 14 15 21 22 23 24 25 31 32 33 34 35,2、矩阵结构变换,A = 1 2 3 4 5 6 7 8 9 0 21 22 23 24 25 31 32 33 34 35 41 42 43 44 45, fliplr(A) ans = 5 4 3 2 1 0 9 8 7 6 25 24 23 22 21 35 34 33 32 31 45 44 43 42 41,(5)矩阵的翻转,对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,依次类推,函数是fliplr(A)。 矩阵的上下翻转函数是flipud(A)。, flipud(A) ans = 41 42 43 44 45 31 32 33 34 35 21 22 23 24 25 6 7 8 9 0 1 2 3 4 5,3、矩阵求逆与线性方程组求解,A = 1 -1 1 5 -4 3 2 1 1 B=inv(A) B = -1.4000 0.4000 0.2000 0.2000 -0.2000 0.4000 2.6000 -0.6000 0.2000, A*B ans = 1.0000 -0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 -0.0000 1.0000,(1)矩阵的逆,对于一个方阵A,如果存在一个与其同阶的方阵B,使得:AB=BA=I (I为单位矩阵),则称B为A的逆矩阵,当然,A也是B的逆矩阵。 求方阵A的逆矩阵可调用函数inv(A)。, B*A ans = 1.0000 0.0000 0.0000 -0.0000 1.0000 0 -0.0000 0.0000 1.0000,3、矩阵求逆与线性方程组求解,A = 3 1 1 1 1 3 1 1 1 1 3 1 B=pinv(A) B = 0.3929 -0.1071 -0.1071 -0.1071 0.3929 -0.1071 -0.1071 -0.1071 0.3929 0.0357 0.0357 0.0357, A*B*A ans = 3.0000 1.0000 1.0000 1.0000 1.0000 3.0000 1.0000 1.0000 1.0000 1.0000 3.0000 1.0000 B*A*B ans = 0.3929 -0.1071 -0.1071 -0.1071 0.3929 -0.1071 -0.1071 -0.1071 0.3929,(2)矩阵的伪逆,如果矩阵A不是一个方阵,或者A是一个非满秩的方阵时,矩阵A没有逆矩阵,但可以找到一个与A的转置矩阵A同型的矩阵B,使得:ABA=A,BAB=B,此时称矩阵B为矩阵A的伪逆,也称为广义逆矩阵。 在MATLAB中,求一个矩阵伪逆的函数是pinv(A)。,3、矩阵求逆与线性方程组求解,A = 1 2 3 1 4 9 1 8 27 b=5 -2 6 b = 5 -2 6, x=inv(A)*b x = 23.0000 -14.5000 3.6667 X=Ab X = 23.0000 -14.5000 3.6667,(3)用求逆矩阵的方法解线性方程组,4、矩阵求值, A=rand(5) A = 0.9501 0.7621 0.6154 0.4057 0.0579 0.2311 0.4565 0.7919 0.9355 0.3529 0.6068 0.0185 0.9218 0.9169 0.8132 0.4860 0.8214 0.7382 0.4103 0.0099 0.8913 0.4447 0.1763 0.8936 0.1389 B=det(A) B = -0.0071,(1)方阵的行列式,把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为矩阵所对应的行列式的值。在MATLAB中,求方阵A所对应的行列式的值的函数是det(A)。,4、矩阵求值, A=rand(5) A = 0.9501 0.7621 0.6154 0.4057 0.0579 0.2311 0.4565 0.7919 0.9355 0.3529 0.6068 0.0185 0.9218 0.9169 0.8132 0.4860 0.8214 0.7382 0.4103 0.0099 0.8913 0.4447 0.1763 0.8936 0.1389 B=det(A) B = -0.0071,(2)矩阵的秩,矩阵线性无关的行数与列数称为矩阵的秩。在MATLAB中,求矩阵秩的函数是rank(A)。, rank(A) ans = 5,4、矩阵求值,A = 2 2 3 4 5 -6 7 8 9 trace(A) ans = 16,(3)矩阵的迹,矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。在MATLAB中,求矩阵的迹的函数是trace(A)。,4、矩阵求值,V = -1.0000 0.5000 1.0000 v1=norm(V,1) v1 = 2.5000 v2=norm(V) v2 = 1.5000 vinf=norm(V,inf) vinf = 1,(4)向量的范数,norm(V)或norm(V,2):计算向量V的2范数。norm(V,1):计算向量V的1范数。norm(V,inf):计算向量V的范数。,4、矩阵求值,(5)矩阵的范数,norm(A)或norm(A,2):计算矩阵V的2范数。norm(A,1):计算矩阵V的1范数。norm(A,inf):计算矩阵V的范数。,称为A的列范数,称为A的行范数,最大特征值,4、矩阵求值,(5)矩阵的条件数,矩阵A的条件数等于A的范数与A逆矩阵的范数的乘积,条件数越接近于1,矩阵的性能就越好,条件数事实上表示了矩阵计算对于误差的敏感性。对于线性方程组Ax=b,如果A的条件数大,b的微小改变就能引起解x较大的改变,数值稳定性差。如果A的条件数小,b有微小的改变,x的改变也很微小,数值稳定性好。它也可以表示b不变,而A有微小改变时,x的变化情况。,4、矩阵求值,(5)矩阵的条件数,A = 2 2 3 4 5 -6 7 8 9 C1=cond(A) C1 = 87.9754,B = 2 -5 4 1 5 -2 -1 2 4 C2=cond(B) C2 = 3.7515,cond(A,1) 计算A的1范数下的条件数。cond(A)或cond(A,2) 计算A的2范数数下的条件数。cond(A,inf) 计算A的 范数下的条件数。,B的性能要好于A的性能,4、矩阵的特征值与特征向量,矩阵的特征值与特征向量,A = 1.0000 1.0000 0.5000 1.0000 1.0000 0.2500 0.5000 0.2500 2.0000, V,D=eig(A) V = 0.7212 0.4443 0.5315 -0.6863 0.5621 0.4615 -0.0937 -0.6976 0.7103 D = -0.0166 0 0 0 1.4801 0 0 0 2.5365,E=eig(A):求矩阵A的全部特征值,构成向量E。V,D=eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量。,一个矩阵的特征向量有无穷多个,eig函数只找出其中的n个,其他的特征向量均可由这n个特征向量的线性组合表示。,4、矩阵的特征值与特征向量,矩阵的特征值与特征向量,用求特征值的方法解方程 p=3 -7 0 5 2 -18; A=compan(p); x1=eig(A) x1 = 2.1837 1.0000 + 1.0000i 1.0000 - 1.0000i -0.9252 + 0.7197i -0.9252 - 0.7197i,直接求方程的根 x2=roots(p) x2 = 2.1837 1.0000 + 1.0000i 1.0000 - 1.0000i -0.9252 + 0.7197i -0.9252 - 0.7197i,求解方程,5、矩阵的超越函数,Matlab提供了一些直接作用于矩阵的超越函数,这些函数都在上述内部函数名之后缀以m,并规定输入参数必须是方阵。,5、矩阵的超越函数,A = 4 2 3 6 B=sqrtm(A) B = 1.9171 0.4652 0.6978 2.3823 B*B ans = 4.0000 2.0000 3.0000 6.0000,A = 4 9 16 25 eig(A) ans = -1.4452 30.4452 B=sqrtm(A) B = 0.9421 + 0.9969i 1.5572 - 0.3393i 2.7683 - 0.6032i 4.5756 + 0.2053i,若A为实对称正定矩阵或Hermitian正定阵,则一定能算出它的平方根; 若矩阵A含有负的特征值,则其平方根会得到一个复矩阵;,(1)矩阵平方根sqrtm,5、矩阵的超越函数,A = 4 9 1 5 L=logm(A) L = 1.0639 2.4308 0.2701 1.3340 B=expm(L) B = 4.0000 9.0000 1.0000 5.0000,(2)矩阵对数logm (3)矩阵指数expm,5、矩阵的超越函数, A=2 -1;1 0 A = 2 -1 1 0 funm(A,exp) ans = 5.4366 -2.7183 2.7183 -0.0000 expm(A) ans = 5.4366 -2.7183 2.7183 0.0000,(4)通用矩阵函数funm,funm(A,fun)用来计算直接作用于矩阵A的由fun指定的超越函数值。 fun函数可以用于exp、log,但不能用于sqrt。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!