线性代数实践matlab教师班第三讲.ppt
《线性代数实践matlab教师班第三讲.ppt》由会员分享,可在线阅读,更多相关《线性代数实践matlab教师班第三讲.ppt(76页珍藏版)》请在三一文库上搜索。
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) % 输入均分行向量 % 用全么列乘均分行生成X Xones(lh,1)*h % 用均分列乘全么行生成Y Yh*ones(1,lh),7.2 初等变换乘子矩阵的生成,行交换E1gen(n,i,j):使n行矩阵中的第i,j两行交换 function E=E1gen(n,i,j) n=size(A); E=eye(n); E(i,i)=0; E(j,j)=0; E(i,j)=1; E(j,i)=1; 乘子矩阵E2gen
3、 (n,i,k),使n行矩阵中的第i行乘以k function E=E2gen(n,i,k) n=size(A); E=eye(n); E(i,i)=k; E3gen(n,i,j,c)使n行矩阵中的第i行乘以k加到第j行上 function E=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 求消元所需的乘子矩阵,要消去下列矩阵的A(2,1),求乘子矩阵E3 在第二行加以第一行乘
4、A(2,1)/A(1,1)3, 故令B E3gen(A,1,2,3),行阶梯生成等价于矩阵左乘,因此,整个行阶梯形式U的生成过程,可以看作把原矩阵左乘以一系列的初等变换矩阵E1和E3。把这些初等矩阵的连乘积写成Ex,设其逆为L: 从而有 L*UA (7.10) 就是说,A可以分解为一个准下三角矩阵L和一个上三角(即行阶梯)矩阵U的乘积。MATLAB提供了三角分解的函数lu,它的调用方法是: L,Ulu(A),lu分解是求行阶梯的一个方法,用lu函数求出的U实际上就是A的行阶梯形式(不是简化行阶梯形式)。所以,求简化行阶梯形式用rref函数,而求行阶梯形式可以用lu 函数。不过,它和我们用消元运
5、算所得U的数据不一定相同,尽管得出的阶次和阶梯形状相同。但因为行阶梯形式可以有无数种,用不同步骤算出的结果也不同。只有变成简化行阶梯形式,才能进行比较,看它是不是惟一的。,7.3 行列式的定义和计算,两种定义方法: 1。按全排列求和定义, 其中tj为第j种排列的逆序数。,行列式第2种定义方法,2。按解的分母项,从低阶到高阶用归纳法定义 二阶: 三阶:,两种定义方法的比较,第一种定义的两个数学难点全排列和逆序数,是绝大多数工科学生一生不会用的。 第二种定义方法自然地得出了行列式按行(或按列)展开的公式。美国教材都用第二种定义方法,成电教材(全国精品课程)也用这种方法。 两种方法都不能用来计算,因
6、为其计算效率都极低,2525矩阵要算上万年。 第8章将指出,行列式的几何意义是面积或体积,可否从这方面探索,因为它的用途很单一,就是判断奇异性,连正负号都不必关心。,行列式的计算方法,计算行列式的最好方法还是行阶梯法,可以利用lu分解 L,Ulu(A) 把A分解为一个准下三角矩阵L和一个上三角矩阵U的乘积。因为det(L)1,所以U和A的行列式相等。 det(A) det(U) 而三角矩阵U的det(U)很好求。只要把U的主对角线元素连乘就可得到它的行列式。 此法所需的乘法次数仅为定义1法的10 -23,行列式计算实例7.3.1,程序如下 l,ulu(A), du diag(u) Dprod(
7、du) 结果为,du 10 4.8 10.625 9.4824 1.2349 D 5.9720e003 5972,7.4 矩阵的秩和矩阵求逆,按定义,矩阵的秩是矩阵A中行列式不等于零的最高阶子式的阶次。是用以衡量联立方程中有效方程数目的指数。 按照定义来计算矩阵的秩,可能遇到的问题也是子矩阵的数量很大,每个矩阵的行列式计算又非常麻烦,其计算量也将是不可接受的天文数字。 计算矩阵的秩的最好方法仍然是行阶梯法,如第6章所述,行阶梯化简后非全为零的行数,就是该矩阵的秩。用MATLAB函数rrank(A)可以检验A的秩,rank函数对A是否是方阵没有要求,即可以有mn。,矩阵求逆,对于nn方阵A,当r
8、n时,称A是满秩的,若rn,必有det(A)0,称A是欠秩的或奇异的。奇异矩阵不可以求逆。 矩阵求逆的最简单方法也是行阶梯化简,其方法是设定一个由A和I组成的增广矩阵CA,I,求C的简化行阶梯形式UCrref(A,I),得出UCI,V。V就显示出这个逆矩阵的内容。,例7.6 求逆矩阵示例,求A的逆阵 解:程序ag706。 A3,0,3,6;5,1,1,5;3,1,4,9;1,3,4,4; CA,eye(4) U0Crref(C) VU0C(:,5:8),程序运行结果,右边四列就是其逆阵: 矩阵求逆命令:V=inv(A),用inv函数求逆,求A的逆阵 程序ag707为: A=-16,-4,-6;
9、15,-3,9;18,0,9, V=inv(A) 运行结果: Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 6.042030e-018.,条件数衡量奇异程度的量,在用数值方法计算矩阵的逆时,由于计算中的误差,人们不大可能得到理想的零合理想的全零行,所以矩阵是否奇异,并不是那么绝对的。 为了评价矩阵接近奇异的程度,采用了条件数(Condition Number)作为常用的衡量指标。它永远大于1。其数值愈接近于1,计算误差愈小; MATLAB中,条件数用cond(A)
10、计算,它达到104以上时,求逆的误差就可能相当可观。像现在,条件数达到1016(注:条件数是逆条件数RCOND的倒数),结果是根本不能用的。,7.5 用矩阵除法解线性方程,如果mn,则线性代数方程 Axb (7.21) 中的A是方阵,设det(A)0,则它的逆阵存在。将上式左右同乘以inv(A) ,由于inv(A) *AI,得到 xinv(A)*b (7.23) MATLAB创立了矩阵除法的概念,因为 inv(A)相当于将A放到分母上去,所以可以把上式写成 xA b (7.24) 就称为左除,因为inv(A)是乘在b的左方。,左除解线性方程的扩展,左除的功能远远超过了矩阵求逆函数inv,inv
11、(A)函数要求A必须是方阵,所以(7.23)式只能用来解适定方程,而(7.24)式并不要求A为方阵,在A是mn阶且mn(欠定)时,它只要求A与b的行数相等且A的秩为m。所以(7.24)式也可以用来解欠定方程,在下例中可以看出。此外,运算符还能用来解超定方程,,左除解欠定方程,例7.8 用矩阵算法解例6.5.1 A3,4,3,2,1;0,6,0,3,3;4,3,4,2,2; 1,1,1,0,1;2,6,2,1,3; b 2; 3; 2; 0; 1; x=Ab 得到x=inf,无解。改用行阶梯方法找有效行。 左除要求的是系数矩阵的行数与秩相同, BA,b,r=rank(B),UB,iprref(B
12、); U0UB(1:r,1:5); dUB(1:3,6); xU0d,本例运行结果,r=3, 及 它是此欠定方程的一个特解。,7.6.1 网络的矩阵分割和连接,在电路设计中,经常要把复杂的电路分割为局部电路,每一个电路都用一个网络黑盒子来表示。黑盒子的输入为u1,i1,输出为u2,i2,其输入输出关系用矩阵A来表示(如图7.1所示): A是22矩阵,称为该局部电路的传输矩阵,两个网络的串联,两个串接的子网络。第一个子网络包含电阻R1,第二个子网络包含电阻R2,列出第一个子网络的电路方程为: 由 得矩阵方程,两个网络的串联(续),由第二网络: 写成矩阵方程为: 整个电路的传输矩阵为两者的乘积,7
13、.6.2 用逆阵进行保密编译码,在英文中有一种对消息进行保密的措施,就是把英文字母用一个整数来表示。然后传送这组整数。这种方法是很容易根据数字出现的频率来破译,例如出现频率特别高的数字,很可能对应于字母E。 可以用乘以矩阵A的方法来进一步加密。假如A是一个行列式等于1的整数矩阵,则A1的元素也必定是整数。而经过这样变换过的消息,同样两个字母对应的数字不同,所以就较难破译。 接收方只要将这个消息乘以A1就可以复原。,7.6.3 减肥配方的实现,设脱脂牛奶的用量为x1个单位(100g),大豆面粉的用量为x2个单位,乳清的用量为x3个单位,表中的三个营养成分列向量为: 使这个合成的营养与剑桥配方的要
14、求相等,得到,7.6.4 弹性梁的柔度矩阵,设简支梁如图7.3所示,在梁的三个位置分别施加力f1,f2和f3后,在该处产生的综合变形为图示的y1,y2和y3,通常称为挠度。根据虎克定律,在材料未失去弹性的范围内,力与它引起的变形呈线性关系,可以写出: 矩阵中的元素d为单位力f引起的挠度,它愈大,表明这个梁愈柔软。,数字实例,设柔度矩阵 (1)在1,2,3处施加的力为30,50和20试求出其挠度。 (2)要在3处产生0.4挠度,其他两处为零,求应加的力。 程序ag764 D0.001*5,2,1;2,4,3;1,3,6 % 输入柔度矩阵 f30;50;20, yD*f (排齐)% 给定力,求挠度
15、 y10;0;0.4 % 给定挠度, Kinv(D), f1K*y1 % 求刚度矩阵,求力,梁的刚度矩阵计算,柔度矩阵的逆就是刚度矩阵K,KD 1, 其中,7.6.5 网络和图,图为1,2,3,4四个城市之间的空运航线,用有向图表示。则该图可以用下列航路矩阵表示: 经过一次转机(也就是坐两次航班)能到达的城市,可以由邻接矩阵的平方A2A12来求得。,第8章 用向量空间解方程组,8.1 向量和向量空间 二维空间R2中的向量用两个沿列向的元素表示 u=2;4; v=3;-1; plot(2,3,4,1,x);hold on % 若用中的子程序drawvec, drawvec(u);hold on
16、drawvec(v,g);hold off,二维向量张成的空间,平面上的任何一点w1;w2是不是一定能用u和v的线性组合来实现?即是不是一定能找到一组常数c1,c2,使得 c1,c2取所有可能的值,得到的w的集合就是u和v张成的子空间,在所给的u和v下,它是一个平面。 若u和v两个向量的各元素成简单的比例关系,合成的向量只能在一根直线上,不可能张成整个二维平面。这种情况下,称这两个向量u和v是线性相关的。,2三维空间中的向量,若v1,v2和v3都是三维空间的列向量。可以用空间坐标中的三个点,或从坐标原点引向这三点的箭头来表示。用矩阵代数表示如下 如果三个基本向量之间线性无关,那么它们的线性组合
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 线性代数 实践 matlab 教师 三讲
链接地址:https://www.31doc.com/p-2183517.html