• 线性代数之——矩阵乘法和逆矩阵


    1. 矩阵乘法

    如果矩阵 (B) 的列为 (b_1, b_2, b_3),那么 (EB) 的列就是 (Eb_1, Eb_2, Eb_3)

    [oldsymbol{EB = E[b_1 quad b_2 quad b_3] = [Eb_1 quad Eb_2 quad Eb_3]} ]

    [Espace(B 的第space j space列) =EB space的第 space j space列 ]

    • 置换矩阵(permutation matrix)

    在消元的过程中,如果遇到了某一行主元的位置为 0,而其下面一行对应的位置不为 0,我们就可以通过行交换来继续进行消元。

    如下的矩阵 (P_{23}) 可以实现将向量或者矩阵的第 2 、 3 行进行交换。

    [P_{23} = egin{bmatrix} 1&0&0 \ 0&0&1\0&1&0end{bmatrix} ]

    [egin{bmatrix} 1&0&0 \ 0&0&1\0&1&0end{bmatrix} egin{bmatrix} 1 \ oldsymbol 3\oldsymbol 5end{bmatrix} = egin{bmatrix} 1 \ oldsymbol 5\oldsymbol 3end{bmatrix} ]

    [egin{bmatrix} 1&0&0 \ 0&0&1\0&1&0end{bmatrix} egin{bmatrix} 2&4&1 \ oldsymbol0&oldsymbol0&oldsymbol3\0&6&5 end{bmatrix} = egin{bmatrix} 2&4&1 \0&6&5 \oldsymbol0&oldsymbol0&oldsymbol3end{bmatrix} ]

    置换矩阵 (P_{ij}) 就是将单位矩阵的第 (i) 行和第 (j) 行进行互换,当交换矩阵乘以另一个矩阵时,它的作用就是交换那个矩阵的第 (i) 行和第 (j) 行。

    • 增广矩阵(augmented matrix)

    在消元的过程中,方程两边的系数 (A)(b) 都要进行同样的变换,这样,我们可以把 (b) 作为矩阵 (A) 的额外的一列,然后,就可以用消元矩阵 (E) 乘以这个增广的矩阵一次性完成左右两边的变换。

    [E[A space oldsymbol b] = [EA space E oldsymbol b] ]

    [egin{bmatrix} 1&0&0 \ -2&1&0\0&0&1end{bmatrix} egin{bmatrix} 2&4&-2&oldsymbol 2 \ 4&9&-3&oldsymbol 8 \-2&-3&7&oldsymbol 10 end{bmatrix} = egin{bmatrix} 2&4&-2&oldsymbol 2 \ 0&1&1&oldsymbol 4 \-2&-3&7&oldsymbol 10 end{bmatrix} ]

    • 矩阵乘法的四种理解

    如果矩阵 (A)(n) 列, (B)(n) 行,那么我们可以进行矩阵乘法 (AB)

    假设矩阵 (A)(m)(n) 列,矩阵 (B)(n)(p) 列,那么 (AB)(m)(p) 列的。

    [(m×n)(n×p)(m×p) quad egin{bmatrix} oldsymbol{m space 行} \{n space 列} end{bmatrix} egin{bmatrix} n space 行 \oldsymbol{p space 列} end{bmatrix} egin{bmatrix} oldsymbol{m space 行} \oldsymbol{p space 列}end{bmatrix} ]

    矩阵乘法的第一种理解方式就是一个一个求取矩阵 (AB) 位于 ((i, j)) 处的元素

    [(AB)_{ij} = A space 的第 space i space 行与space B space的第space j space 列的内积 = sum a_{ik}b_{kj} ]

    第二种理解,矩阵 (AB) 的列是 (A) 的列的线性组合

    [{AB = A[b_1 quad b_2 cdots b_p] = [Ab_1 quad Ab_2 cdots Ab_p]} ]

    第三种理解,矩阵 (AB) 的行是 (B) 的行的线性组合

    [AB = egin{bmatrix}a_1 \ a_2 \ vdots \a_mend{bmatrix}B = egin{bmatrix}a_1 B \ a_2B \ vdots \a_m Bend{bmatrix} ]

    第四种理解,矩阵 (AB) 是所有 (A) 的列与 (B) 的行的乘积的和

    [AB = [a_1 quad a_2 cdots a_n] egin{bmatrix}b_1 \ b_2 \ vdots \b_nend{bmatrix} = sum_{i=1}^{n} a_i b_i ]

    其中,一列乘以一行称为外积(outer product),(n×1)(1×n)=(n, n),结果为一个 n×n 的矩阵。

    [egin{bmatrix}2&7 \ 3&8 \ 4&9end{bmatrix} egin{bmatrix}1&6 \ 0&0end{bmatrix} = egin{bmatrix}2 \ 3 \ 4end{bmatrix}[1 quad 6] + egin{bmatrix}7 \ 8 \ 9end{bmatrix}[0 quad 0] = egin{bmatrix}2&12 \ 3&18 \ 4&24end{bmatrix} ]

    • 矩阵乘法的性质

    结合律:(oldsymbol{A(BC) = (AB)C})
    交换律:(oldsymbol{(A+B)C = AC+BC})
    交换律:(oldsymbol{A(B+C) = AB+AC})

    [A^p = underbrace{AAcdots A}_{ ext{p 个}} ]

    [A^pA^q = A^{(p+q)} ]

    [(A^p)^q = A^{pq} ]

    [A^0=I ]

    • 分块矩阵

    矩阵还可以被划分为小块,其中每个小块都是一个更小的矩阵。

    如果对矩阵 (A) 的列的划分和对矩阵 (B) 的行的划分正好匹配,那么每个块之间就可以进行矩阵乘法。

    一种特殊的划分就是矩阵 (A) 的每个小块都是 (A) 的一列,矩阵 (B) 的每个小块都是 (B) 的一行,这种情况就是我们上面说的矩阵相乘的第四种理解。

    同样地,在消元的时候,我们也可以按块对系数矩阵进行消元。

    2. 矩阵的逆

    假设 (A) 是一个方阵,如果存在一个矩阵 (A^{-1}),使得

    [A^{-1}A = I quad 并且 quad AA^{-1} = I ]

    那么,矩阵 (A) 就是可逆的,(A^{-1}) 称为 (A) 的逆矩阵。

    逆矩阵的逆就是进行和原矩阵相反的操作。消元矩阵 (E_{21}) 的作用是第二个方程减去第一个方程的 2 倍。

    [E_{21} = egin{bmatrix} 1&0&0 \ -2&1&0\0&0&1end{bmatrix} ]

    其逆矩阵 (E_{21}^{-1}) 的作用则是第二个方程加上第一个方程的 2 倍。

    [E_{21}^{-1} = egin{bmatrix} 1&0&0 \ 2&1&0\0&0&1end{bmatrix} ]

    • 当且仅当在消元过程中产生 (n) 个主元的时候(允许行交换),矩阵 (A) 的逆才存在。

    • 矩阵 (A) 不可能有两个不同的逆矩阵,左逆等于右逆。假设 (BA=I)(AC=I),那么一定有 (B=C)

    [B(AC) = (BA)C o BI = IC o B=C ]

    • 如果矩阵 (A) 是可逆的,那么 (Ax=b) 有唯一解 (x=A^{-1}b)

    • 如果存在一个非零向量 (x) 使得 (Ax= oldsymbol 0),那么 (A) 不可逆,因为没有矩阵可以将零向量变成一个非零向量。

    [若 space A^{-1} space 存在,则space x = A^{-1} oldsymbol 0 = oldsymbol 0 ]

    • 一个 2×2 的矩阵是可逆的,当且仅当 (ad-bc) 非零。

    • 一个对角化矩阵如果其对角线上元素非零,那么其有逆矩阵。

    如果矩阵 (A) 和矩阵 (B) 都是可逆的,那么它们的乘积 (AB) 也是可逆的。

    [(AB)^{-1} = B^{-1}A^{-1} ]

    [(AB)^{-1}AB = B^{-1}A^{-1}AB = B^{-1}IB = I ]

    同样地,针对三个或更多矩阵的乘积,有

    [(ABC)^{-1} = C^{-1}B^{-1}A^{-1} ]

    3. 高斯-若尔当消元法(Gauss-Jordan Elimination)求矩阵的逆

    我们可以通过消元法来求解矩阵 (A) 的逆矩阵。思路是这样的,假设 (A) 是一个 3×3 的矩阵,那么我们可以建立三个方程来分别求出 (A^{-1}) 的三列。

    [AA^{-1} = A[x_1 quad x_2 quad x_3] = [e_1 quad e_2 quad e_3]=egin{bmatrix} 1&0&0 \ 0&1&0\0&0&1end{bmatrix} ]

    [egin{alignedat}{2} Ax_1 = e_1 \ Ax_2 = e_2\ Ax_3 = e_3 end{alignedat}]

    而高斯-若尔当消元法则是一次性求解出这些方程,之前我们求解一个方程的时候,将 (b) 作为 (A) 的一列组成增广矩阵,而现在我们则是把 (e_1、e_2、e_3) 三列一起放入 (A) 中形成一个增广矩阵,然后进行消元。

    到这里,我们已经得到了一个下三角矩阵 (U),高斯就会停在这里然后用回带法求出方程的解,但若尔当将会继续进行消元,直到得到简化阶梯形式(reduced echelon form)

    最后,我们将每行都除以主元得到新的主元都为 1,此时,增广矩阵的前一半矩阵就是 (I),而后一半矩阵就是 (A^{-1})

    我们用分块矩阵就可以很容易地理解高斯-若尔当消元法,消元的过程就相当于乘以了一个 (A^{-1})(A) 变成了 (I),将 (I) 变成了 (A^{-1})

    [A^{-1}[A quad I] = [I quad A^{-1}] ]

    获取更多精彩,请关注「seniusen」!

  • 相关阅读:
    HTTP 404
    hibernate官方新手教程 (转载)
    OpenStreetMap初探(一)——了解OpenStreetMap
    fopen 參数具体解释
    怎样将程序猿写出来的程序打包成安装包(最简单的)
    poj 2253 Frogger (最长路中的最短路)
    android笔记6——intent的使用
    uva 11133
    天津出差系列(五)----第五天
    贪心2--均分纸牌
  • 原文地址:https://www.cnblogs.com/seniusen/p/9962935.html
Copyright © 2020-2023  润新知