资源描述:
《线性代数实践matlab教师班第三讲.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、线性代数实践(第三讲)第7章矩阵运算法解方程7.1矩阵运算的规则在MATLAB入门中已讲过的,不再重复。由于其乘法不符合交换律,有些公式不能乱用;单列向量与单行向量的左右两种乘法要加区别,而且往往有特别的用途。例如向量长度(范数)的计算;例如二维坐标网格的生成;X=ones(21,1)*[-10:10],Y=[-10:10]’*ones(1,21)矩阵的乘幂An,eA和(I-A)-1的级数展开,都要求A是方阵。矩阵乘法不满足交换律有许多我们习惯的公式,其中隐含地包含了交换律,这些公式在矩阵运算中也不能直接使用。比如:正确的做法是展开时
2、不交换次序平面上网格坐标系的产生用列矩阵乘行矩阵生成网格坐标这两个矩阵都是21行21列的,都有441个元素,如何快捷地输入呢?这时可以用到列乘行的乘法运算。可用下面的语句:h10:10;lhlength(h)%输入均分行向量%用全么列乘均分行生成XXones(lh,1)*h%用均分列乘全么行生成YYh‘*ones(1,lh)7.2初等变换乘子矩阵的生成行交换E1gen(n,i,j):使n行矩阵中的第i,j两行交换functionE=E1gen(n,i,j)n=size(A);E=eye(n);E(i,i)=0;E(j,j)=
3、0;E(i,j)=1;E(j,i)=1;乘子矩阵E2gen(n,i,k),使n行矩阵中的第i行乘以kfunctionE=E2gen(n,i,k)n=size(A);E=eye(n);E(i,i)=k;E3gen(n,i,j,c)使n行矩阵中的第i行乘以k加到第j行上functionE=E3gen(n,i,j,k)n=size(A);E=eye(n);E(j,i)=k;初等变换乘子矩阵示例E=E1gen(8,4,6)E2=E2gen(8,4,6)E3=E3gen(8,4,6,5)例如E3=E3gen(3,1,3,4)例7.2.4求消元所
4、需的乘子矩阵要消去下列矩阵的A(2,1),求乘子矩阵E3在第二行加以第一行乘A(2,1)/A(1,1)3,故令BE3gen(A,1,2,3)行阶梯生成等价于矩阵左乘因此,整个行阶梯形式U的生成过程,可以看作把原矩阵左乘以一系列的初等变换矩阵E1和E3。把这些初等矩阵的连乘积写成Ex,设其逆为L:从而有L*UA(7.10)就是说,A可以分解为一个准下三角矩阵L和一个上三角(即行阶梯)矩阵U的乘积。MATLAB提供了三角分解的函数lu,它的调用方法是:[L,U]lu(A)lu分解是求行阶梯的一个方法用lu函数求出的U实际上就
5、是A的行阶梯形式(不是简化行阶梯形式)。所以,求简化行阶梯形式用rref函数,而求行阶梯形式可以用lu函数。不过,它和我们用消元运算所得U的数据不一定相同,尽管得出的阶次和阶梯形状相同。但因为行阶梯形式可以有无数种,用不同步骤算出的结果也不同。只有变成简化行阶梯形式,才能进行比较,看它是不是惟一的。7.3行列式的定义和计算两种定义方法:1。按全排列求和定义,其中tj为第j种排列的逆序数。行列式第2种定义方法2。按解的分母项,从低阶到高阶用归纳法定义二阶:三阶:两种定义方法的比较第一种定义的两个数学难点‘全排列’和‘逆序数’,是绝大多数
6、工科学生一生不会用的。第二种定义方法自然地得出了行列式按行(或按列)展开的公式。美国教材都用第二种定义方法,成电教材(全国精品课程)也用这种方法。两种方法都不能用来计算,因为其计算效率都极低,25×25矩阵要算上万年。第8章将指出,行列式的几何意义是面积或体积,可否从这方面探索,因为它的用途很单一,就是判断奇异性,连正负号都不必关心。行列式的计算方法计算行列式的最好方法还是行阶梯法,可以利用lu分解[L,U]lu(A)把A分解为一个准下三角矩阵L和一个上三角矩阵U的乘积。因为det(L)1,所以U和A的行列式相等。det(A)d
7、et(U)而三角矩阵U的det(U)很好求。只要把U的主对角线元素连乘就可得到它的行列式。此法所需的乘法次数仅为定义1法的10-23行列式计算实例7.3.1程序如下[l,u]lu(A),dudiag(u)Dprod(du)结果为du10–4.810.6259.48241.2349D5.9720e00359727.4矩阵的秩和矩阵求逆按定义,矩阵的秩是矩阵A中行列式不等于零的最高阶子式的阶次。是用以衡量联立方程中有效方程数目的指数。按照定义来计算矩阵的秩,可能遇到的问题也是子矩阵的数量很大,每个矩阵的行列式计算又非常麻烦
8、,其计算量也将是不可接受的天文数字。计算矩阵的秩的最好方法仍然是行阶梯法,如第6章所述,行阶梯化简后非全为零的行数,就是该矩阵的秩。用MATLAB函数rrank(A)可以检验A的秩,rank函数对A是否是方阵没有要求,