zoukankan      html  css  js  c++  java
  • 数学

    线性代数导论 - #3 矩阵乘法和逆的成立条件与运算方法

    在#3中,对#2里涉及的高斯消元法的矩阵语言描述中的矩阵乘法和逆作了深入的介绍,介绍的基本思路都是介绍了成立的前提条件和求法。

    首先是矩阵乘法。

    能够相乘的矩阵不一定是方阵,只要“相互匹配”即可。

    匹配条件可以从运算的方法倒推,结论是能够和m*n矩阵A相乘的矩阵B,其行数一定要等于A的列数n,即B为n*p矩阵。而运算的结果是m*p矩阵C。

    矩阵乘法有这几种方法,根据待求对象选择恰当的方法以减少运算量:

    1.元素法(指定行向量*指定列向量):矩阵C中m行n列的元素等于矩阵A中行向量m点乘矩阵B中列向量n;

    2.列方法(矩阵*列向量):把B看成p个列向量的集合,用每一个列向量去乘矩阵A,得到的线性组合从左到右排列在矩阵C中;

    (所以每个列向量的元素数也即矩阵b行数一定要与矩阵A列数相同,而与p个列向量相乘得到的矩阵C就有p列)

    3.行方法(行向量*矩阵):把A看成m个行向量的集合,用每一个行向量去乘矩阵B,得到的线性组合从上到下排列的矩阵C中;

    (所以待组合的行向量个数也即矩阵b行数一定要与矩阵A列数相同,而与m个行向量相乘得到的矩阵C就有m行)

    4.矩阵法(行向量*对应列向量):矩阵C等于A的行向量k乘B的列向量k所得m*p矩阵Ci的和;

    5.分块法(指定矩阵块行*指定矩阵块列):A和B均为方阵时,分成相同数量的方矩阵块,C中m行n列的矩阵块等于A中矩阵块行向量m“点乘”B中矩阵块列向量B。

    这些方法的核心思想都是线性组合。换言之,任何一个线性的关系式,也即线性的方程,我们都可以和#1中改写线性方程组一样,将关系式改写为矩阵乘积即“Ax=b”的形式,用A表示系数,用x表示元,用b表示组合的结果。

    请牢记这个线性代数中的基本思路:矩阵是一种语言,一种在表示线性关系时更加高效的语言。任何线性关系都可以并且应该想到用矩阵的形式表达。

    通过该思路,我们可以套用某些已知的矩阵性质解决建立在线性关系式上的问题。

    比如,请思考怎样最简洁地说明下图中的(1)是一个子空间?

    按照研究运算的一般套路,为了使运算更加灵活,我们需要研究矩阵乘法满足的运算律。

    1.交换律?

    不满足。依据矩阵乘法成立的特殊条件显然有不满足的情况。

    2.结合律?

    满足。可以变换括号的位置。

    3.交换律?

    满足。可以拆括号,由大化小。

    其次是逆。

    什么是逆?它是我们介绍的第一种矩阵变换。从数量关系上来说,可以类比为矩阵的倒数。

    根据矩阵乘法的成立条件,矩阵的逆可能有左逆和右逆之分,左逆与右逆形状不同。为了简化讨论,我们研究左逆和右逆相同的方阵。

    如何判定一个方阵A是否可逆?应从定义即方阵A与它的逆进行矩阵乘法得到单位矩阵I的关系出发。

    有这几种思路,依据待判定方阵的特征选择:

    1.系统方法:

    (1)特征值:“行列式”,将在以后的课程中讲到;

    (2)直接求逆:通过G-J消元法直接求逆,讨论求逆过程及逆的表达式的成立性;

    2.特殊方法:

    (1)代数:借助矩阵乘法中的列方法,我们可以把单位矩阵理解为方阵A中每一列的线性组合的有序集合。如果A的每一列加权后无法得到单位矩阵中的列,比如A中每一列成倍数关系,则A不可逆;

    (2)几何:同2思想。如果A中列向量的所有线性组合所覆盖的空间即列空间无法包含I中列空间,比如A中列向量共面,则A不可逆;

    如何求逆?

    1.系统方法:

    借助Gauss-Jordan消元法:

    (1)将I写在A的右侧,中间用竖线分隔;

    (2)利用#2中的消元法,将A变为U,右侧的I也进行同步的变换;

    (3)再利用#2中的消元法,自下而上将U变为I,右侧的I仍进行同步的变换;

    (4)最终左侧为I,右侧即为A的逆。

    这种神奇的方法的成立依据是矩阵乘法满足结合律。

    已知A为方阵,根据矩阵乘法成立条件,E,B也为方阵。根据运算过程有EA=I,EI=B,而AB=AEI=EAI=II=I,故B就是A的逆。

    2.特殊方法:

    对于一些特殊的矩阵,可以采用比G-J法更快速的办法:

    (1)求初等矩阵E的逆:将E中含有变换操作的元素取相反数:

    求逆的本质是一种“逆向操作”,这个本质恰好可以简化进行单一行变换的E的求逆操作。我们可以假想现有的E右侧有一个操作对象X0,变换(相乘)后的结果为X1。如果我们在X1左侧再乘上一个矩阵,这个矩阵所代表的的行变换恰好与E相反,即这个矩阵是由将E中含有变换操作的元素取相反数得来的。此时再进行变换后的结果又变回了X0,相当于X0乘了一个I。根据矩阵乘法的结合律,第二次乘上去的矩阵就是E-1

    (2)求矩阵乘积AB的逆:(AB)-1=B-1A-1:

    依据还是结合律,ABB-1A-1=A(BB-1)A-1=AIA-1=II=I。

    以上两个结论在求L(下三角矩阵)时特别有用,详情见#4;

    (3)求A的转置矩阵的逆:(AT)-1=(A-1)T

    对于单个矩阵,求逆和转置是平级的,可以以任意顺序进行。

    至于什么是转置(行列互换),将在#5中讲到。

  • 相关阅读:
    Codeforces Beta Round #92 (Div. 2 Only) B. Permutations 模拟
    POJ 3281 Dining 最大流 Dinic算法
    POJ 2441 Arrange the BUlls 状压DP
    URAL 1152 Faise Mirrors 状压DP 简单题
    URAL 1039 Anniversary Party 树形DP 水题
    URAL 1018 Binary Apple Tree 树形DP 好题 经典
    pytorch中的forward前向传播机制
    .data()与.detach()的区别
    Argparse模块
    pytorch代码调试工具
  • 原文地址:https://www.cnblogs.com/samaritan-z/p/8342625.html
Copyright © 2011-2022 走看看