线性代数 | 矩阵运算

注:本文为 "线性代数 | 矩阵运算" 相关合辑。

略作重排,未整理去重。

如有内容异常,请看原文。


线性代数 -- 矩阵基本计算(加减乘法)

二十五画生已于 2025-02-22 21:32:38 修改

一、矩阵的基本概念

矩阵本质上是一个数表,用 A m × n A_{m \times n} Am×n 表示,代表一个 m × n m \times n m×n 的矩阵,有 m m m 行 n n n 列。

矩阵的应用场景广泛,例如用于表示关系等。

如下图就是一个 4 行 4 列的矩阵。

A = [ 0 1 0 0 0 0 1 1 1 1 0 1 1 0 0 0 ] \boldsymbol{A} = \begin{bmatrix} 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 1 \\ 1 & 1 & 0 & 1 \\ 1 & 0 & 0 & 0 \end{bmatrix} A= 0011101001000110

1、行矩阵与列矩阵

仅有一行的矩阵称为行矩阵

A = [ a 1 , a 2 , ⋯   , a n ] \boldsymbol{A} = \left[ a_1, a_2, \cdots, a_n \right] A=[a1,a2,⋯,an]

仅有一列的矩阵称为列矩阵

A = [ a 1 a 2 ⋮ a n ] \boldsymbol{A} = \begin{bmatrix} a_1 \\ a_2 \\ \vdots \\ a_n \end{bmatrix} A= a1a2⋮an

2、零矩阵

若矩阵中所有元素均为 0,则称其为零矩阵,记作 0 0 0

( 0 0 ⋯ 0 0 0 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ 0 ) \begin{pmatrix} 0 & 0 & \cdots & 0 \\ 0 & 0 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 0 \end{pmatrix} 00⋮000⋮0⋯⋯⋱⋯00⋮0

3、负矩阵

将某一矩阵的所有元素取相反数所得到的矩阵,称为该矩阵的负矩阵。

例如 A A A 的负矩阵为 − A -A −A。

A = [ 0 1 0 0 0 0 1 1 1 1 0 1 1 0 0 0 ] \boldsymbol{A} = \begin{bmatrix} 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 1 \\ 1 & 1 & 0 & 1 \\ 1 & 0 & 0 & 0 \end{bmatrix} A= 0011101001000110

− A = [ 0 − 1 0 0 0 0 − 1 − 1 − 1 − 1 0 − 1 − 1 0 0 0 ] -\boldsymbol{A} = \begin{bmatrix} 0 & -1 & 0 & 0 \\ 0 & 0 & -1 & -1 \\ -1 & -1 & 0 & -1 \\ -1 & 0 & 0 & 0 \end{bmatrix} −A= 00−1−1−10−100−1000−1−10

4、方阵

1)方阵的定义

行数与列数相等的矩阵称为方阵,通常也称为 n n n 阶矩阵,记为 A n × n A_{n \times n} An×n 或 A n A_n An

例如下面这个矩阵,就是三行三列的矩阵。

( a 1 b 1 c 1 a 2 b 2 c 2 a 3 b 3 c 3 ) \begin{pmatrix} a_1 & b_1 & c_1 \\ a_2 & b_2 & c_2 \\ a_3 & b_3 & c_3 \end{pmatrix} a1a2a3b1b2b3c1c2c3

2)主对角线和次对角线

仅在方阵中存在对角线的概念。如图:

5、单位阵

主对角线上的元素均为 1,其余元素均为 0 的方阵,称为单位矩阵,记作 E E E。

( 1 0 0 0 1 0 0 0 1 ) \left( \begin{matrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{matrix} \right) 100010001

6、只有一个数字的矩阵

仅含一个元素的矩阵也是矩阵,可视为特殊的矩阵。

例如: [ 5 ] [5] [5]

7、同型矩阵

若两个矩阵的行数和列数分别相等,则称这两个矩阵为同型矩阵。

例如: A 2 × 3 A_{2 \times 3} A2×3 和 B 2 × 3 B_{2 \times 3} B2×3 就是同型矩阵。

若两个同型矩阵的对应元素相等,则称这两个矩阵相等。即矩阵相等的前提是它们为同型矩阵。

二、矩阵与行列式的区别

  1. 本质上,矩阵是一个数表,而行列式是一个数。
  2. 符号:矩阵通常用 ( ) \left ( \right) () 或 [ ] [ ] [] 表示,而行列式用 ∣ ∣ \left| \right| ∣∣ 表示。
  3. 形状上,矩阵不一定是方阵,但是行列式一定是方阵,即行数等于列数。

三、矩阵的运算

1、加法、减法

矩阵的加减运算为对应元素分别相加减(注意:仅同型矩阵可进行加减运算)。

1 0 0 1 \] + \[ 1 1 0 0 \] = \[ 2 1 0 1 \] \\begin{bmatrix} 1 \& 0 \\\\ 0 \& 1 \\end{bmatrix} + \\begin{bmatrix} 1 \& 1 \\\\ 0 \& 0 \\end{bmatrix} = \\begin{bmatrix} 2 \& 1 \\\\ 0 \& 1 \\end{bmatrix} \[1001\]+\[1010\]=\[2011

矩阵的加减法满足以下运算法则:

A + B = B + A A + B = B + A A+B=B+A

( A + B + C ) = A + ( B + C ) (A + B + C) = A + (B + C) (A+B+C)=A+(B+C)

A + ( − A ) = O A + (-A) = O A+(−A)=O

A + B = C ⇔ A = C − B A + B = C \Leftrightarrow A = C - B A+B=C⇔A=C−B

2、数乘运算

数 k k k 与矩阵相乘,结果为该数与矩阵中每个元素分别相乘所得到的矩阵。

3 ( 1 2 3 1 0 − 1 0 1 1 ) = ( 3 × 1 3 × 2 3 × 3 3 × 1 3 × 0 3 × ( − 1 ) 3 × 0 3 × 1 3 × 1 ) 3\begin{pmatrix} 1 & 2 & 3 \\ 1 & 0 & -1 \\ 0 & 1 & 1 \end{pmatrix} = \begin{pmatrix} 3\times1 & 3\times2 & 3\times3 \\ 3\times1 & 3\times0 & 3\times(-1) \\ 3\times0 & 3\times1 & 3\times1 \end{pmatrix} 3 1102013−11 = 3×13×13×03×23×03×13×33×(−1)3×1

矩阵数乘与行列式的区别:

  • 矩阵提取公因子时,若矩阵中所有元素均有公因子,则公因子提取一次。
  • 行列式提取公因子时,每一行(或每一列)可提取一次公因子,若所有元素均有公因子,则对于 n n n 阶行列式,公因子需提取 n n n 次。

矩阵数乘满足的运算规律:

k ( A + B ) = k A + k B ( k + m ) A = k A + m A k ( m A ) = k m A \begin{align*} k(A+B) & =kA+kB \\ (k+m)A & =kA+mA \\ k(mA) & =kmA \end{align*} k(A+B)(k+m)Ak(mA)=kA+kB=kA+mA=kmA

四、矩阵乘法

1、矩阵的乘法

矩阵乘法的计算规则为:前一矩阵的第 i i i 行与后一矩阵的第 j j j 列对应元素相乘后求和,结果作为乘积矩阵第 i i i 行第 j j j 列的元素。

矩阵相乘的前提条件是:第一个矩阵的列数等于第二个矩阵的行数。

乘积矩阵的行数等于第一个矩阵的行数,列数等于第二个矩阵的列数。

例如: A 2 × 3 × A 3 × 2 A_{2 \times 3} \times A_{3 \times 2} A2×3×A3×2 的结果矩阵就是 2 × 2 2 \times 2 2×2 的方阵。

做两个例题练习:

A 99 × 55 × B 55 × 200 = C 99 × 200 A_{99 \times 55} \times B_{55 \times 200} = C_{99 \times 200} A99×55×B55×200=C99×200

A s × h × B h × m = C s × m A_{s \times h} \times B_{h \times m} = C_{s \times m} As×h×Bh×m=Cs×m

2、矩阵乘法不满足的三条规律

  1. A B ≠ B A AB \neq BA AB=BA,即矩阵乘法一般不满足交换律。

    例如: A 5 × 2 A_{5 \times 2} A5×2 与 B 2 × 3 B_{2 \times 3} B2×3 可以相乘,满足前一矩阵列数与后一矩阵行数相等;但 B 2 × 3 B_{2 \times 3} B2×3 与 A 5 × 2 A_{5 \times 2} A5×2 不能相乘,因为 3 ≠ 5 3 \neq 5 3=5,不满足相乘条件。

    矩阵乘法一般不满足交换律,但存在特殊情况,若 A B = B A AB = BA AB=BA,则称 A A A 与 B B B 可交换。

  2. 若 A B = O AB = O AB=O 且 A ≠ O A \neq O A=O,则不能推出 B = O B = O B=O。

    在数字运算中,若 x y = 0 xy = 0 xy=0,可推出 x = 0 x = 0 x=0 或 y = 0 y = 0 y=0;但在矩阵运算中该结论不成立。

  3. 若 A B = A C AB = AC AB=AC 且 A ≠ O A \neq O A=O,则不能推出 B = C B = C B=C。

    同样,在数字运算中,若 3 x = 3 y 3x = 3y 3x=3y,可推出 x = y x = y x=y;但在矩阵运算中该结论不成立。

总结 矩阵乘法不满足的三条规律

  • (1) A B ≠ B A AB \neq BA AB=BA;

  • (2) 若 A B = A C AB = AC AB=AC 且 A ≠ O A \neq O A=O,不能推出 B = C B = C B=C;

  • (3) 若 A B = O AB = O AB=O,不能推出 A = O A = O A=O 或 B = O B = O B=O。

任何矩阵与零矩阵相乘的结果均为零矩阵,由于矩阵乘法的特殊性,需注意零矩阵的形状

3、矩阵乘法的运算规律

  1. 结合律: ( A B ) C = A ( B C ) (AB) C = A (BC) (AB)C=A(BC)

  2. 分配律: ( A + B ) C = A C + B C (A + B) C = AC + BC (A+B)C=AC+BC, C ( A + B ) = C A + C B C (A + B) = CA + CB C(A+B)=CA+CB(注意:由于矩阵乘法的特殊性,矩阵的左右位置具有严格意义,不可随意调换,即矩阵乘法不满足交换律)。

  3. k ( A B ) = ( k A ) B = A ( k B ) k (AB) = (kA) B = A (kB) k(AB)=(kA)B=A(kB)(对于常数 k k k,其在乘法运算中的位置可任意放置)。

(注意:对于上述三条运算规律,需保持矩阵乘法的先后顺序,左乘和右乘的位置不可改变。)

4、矩阵的可交换

若 A B = B A AB = BA AB=BA,则称矩阵 A A A 与 B B B 可交换。当题目告知 A A A 与 B B B 可交换时,即表明着 A B = B A AB = BA AB=BA。

相等矩阵的定义:同型矩阵的对应元素相等

矩阵可交换的前提是它们为同型方阵。

否则,例如:

A 2 × 3 × B 3 × 2 = C 2 × 2 A_{2 \times 3} \times B_{3 \times 2} = C_{2 \times 2} A2×3×B3×2=C2×2( A B AB AB 的结果矩阵为 2 × 2 2 \times 2 2×2 矩阵);
B 3 × 2 × A 2 × 3 = C 3 × 3 B_{3 \times 2} \times A_{2 \times 3} = C_{3 \times 3} B3×2×A2×3=C3×3( B A BA BA 的结果矩阵为 3 × 3 3 \times 3 3×3 矩阵)。

显然,二者结果不相等。

因此,若非同型方阵,矩阵无法交换,首先结果矩阵的形状就不相同。

五、矩阵的幂运算

注意矩阵的幂运算仅适用于方阵,以保证运算可连续进行

矩阵的幂运算定义为: A k = A A ⋯ A A^k = AA\cdots A Ak=AA⋯A(共 k k k 个 A A A 相乘)。

其中 A 0 = E A^0 = E A0=E。

性质 1: A k 1 A k 2 = A k 1 + k 2 A^{k_1} A^{k_2} = A^{k_1 + k_2} Ak1Ak2=Ak1+k2

性质 2: ( A k 1 ) k 2 = A k 1 k 2 (A^{k_1})^{k_2} = A^{k_1k_2} (Ak1)k2=Ak1k2

(再次注意:矩阵的乘法不满足交换律。)

( A B ) k ≠ A k B k (AB)^k \neq A^kB^k (AB)k=AkBk

例如: ( A B ) 2 ≠ A 2 B 2 (AB)^2 \neq A^2B^2 (AB)2=A2B2

原因如下: ( A B ) 2 = A B A B (AB)^2 = ABAB (AB)2=ABAB,而 A 2 B 2 = A A B B A^2B^2 = AABB A2B2=AABB。

注意,矩阵乘法不满足交换律 ,因此上述两式显然不相等,除非 A B AB AB 可交换,即 A B = B A AB = BA AB=BA。

同时:

( A + B ) 2 ≠ A 2 + 2 A B + B 2 (A + B)^2 \neq A^2 + 2AB + B^2 (A+B)2=A2+2AB+B2

证明:

( A + B ) ( A + B ) = ( A + B ) A + ( A + B ) B = A 2 + B A + A B + B 2 (A + B)(A + B) = (A + B) A + (A + B) B = A^2 + BA + AB + B^2 (A+B)(A+B)=(A+B)A+(A+B)B=A2+BA+AB+B2

显然,

2 A B ≠ B A + A B 2AB \neq BA + AB 2AB=BA+AB

同理:

( A − B ) 2 ≠ A 2 − 2 A B + B 2 (A - B)^2 \neq A^2 - 2AB + B^2 (A−B)2=A2−2AB+B2

证明:

( A − B ) ( A − B ) = ( A − B ) A − ( A − B ) B = A 2 − B A − A B + B 2 (A - B)(A - B) = (A - B) A - (A - B) B = A^2 - BA - AB + B^2 (A−B)(A−B)=(A−B)A−(A−B)B=A2−BA−AB+B2

显然,

− 2 A B ≠ − B A − A B -2AB \neq -BA - AB −2AB=−BA−AB

需始终注意:矩阵乘法需严格关注 A B AB AB 的先后顺序,位置的变化会影响运算结果(因为矩阵乘法是前一矩阵的行与后一矩阵的列相乘)。

但是,对于

( A + E ) 2 = A 2 + A E + E A + E 2 (A + E)^2 = A^2 + AE + EA + E^2 (A+E)2=A2+AE+EA+E2


( A − E ) 2 = A 2 − A E − E A + E 2 (A - E)^2 = A^2 - AE - EA + E^2 (A−E)2=A2−AE−EA+E2,

由于任何矩阵与单位阵 E E E 相乘的结果等于其本身,且单位阵左乘与右乘的结果相同

即 A E = E A AE = EA AE=EA, B E = E B BE = EB BE=EB,

因此:

( A + E ) 2 = A 2 + 2 A E + E 2 (A + E)^2 = A^2 + 2AE + E^2 (A+E)2=A2+2AE+E2

( A − E ) 2 = A 2 − 2 A E + E 2 (A - E)^2 = A^2 - 2AE + E^2 (A−E)2=A2−2AE+E2

是成立的。

六、简单的矩阵运算,运用所学知识点

例 1

给定两个方程组:

x 1 = y 1 − y 2 x_1 = y_1 - y_2 x1=y1−y2, y 1 = z 1 + z 2 + z 3 y_1 = z_1 + z_2 + z_3 y1=z1+z2+z3;
x 2 = y 1 + y 2 x_2 = y_1 + y_2 x2=y1+y2, y 2 = z 1 − 2 z 2 + z 3 y_2 = z_1 - 2z_2 + z_3 y2=z1−2z2+z3。

要求用 z 1 , z 2 , z 3 z_1, z_2, z_3 z1,z2,z3 表示 x 1 x_1 x1 和 x 2 x_2 x2。

矩阵与线性变换(变量代换)

通过变量代换( x x x 用 y y y 表示、 y y y 用 z z z 表示 ),将 x x x 关于 y y y 的矩阵变换与 y y y 关于 z z z 的矩阵变换相乘,得到 x x x 关于 z z z 的矩阵变换,还给出了另一组 ( x 1 , x 2 x_1,x_2 x1,x2 )关于 z z z 的矩阵变换,涉及矩阵乘法在线性替换中的应用 。

  1. x x x 与 y y y、 y y y 与 z z z 的矩阵表示

{ ( x 1 x 2 ) = ( 1 − 1 1 1 ) ( y 1 y 2 ) ( y 1 y 2 ) = ( 1 1 1 1 − 2 1 ) ( z 1 z 2 z 3 ) \begin{cases} \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} = \begin{pmatrix} 1 & -1 \\ 1 & 1 \end{pmatrix} \begin{pmatrix} y_1 \\ y_2 \end{pmatrix} \\ \\ \begin{pmatrix} y_1 \\ y_2 \end{pmatrix} = \begin{pmatrix} 1 & 1 & 1 \\ 1 & -2 & 1 \end{pmatrix} \begin{pmatrix} z_1 \\ z_2 \\ z_3 \end{pmatrix} \end{cases} ⎩ ⎨ ⎧(x1x2)=(11−11)(y1y2)(y1y2)=(111−211) z1z2z3

  1. x x x 关于 z z z 的矩阵变换

( x 1 x 2 ) = ( 1 − 1 1 1 ) ( 1 1 1 1 − 2 1 ) ( z 1 z 2 z 3 ) \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} = \begin{pmatrix} 1 & -1 \\ 1 & 1 \end{pmatrix} \begin{pmatrix} 1 & 1 & 1 \\ 1 & -2 & 1 \end{pmatrix} \begin{pmatrix} z_1 \\ z_2 \\ z_3 \end{pmatrix} (x1x2)=(11−11)(111−211) z1z2z3

  1. 化简 x 1 , x 2 x_1,x_2 x1,x2 关于 z z z 的矩阵变换

( x 1 x 2 ) = ( 0 3 0 2 − 1 2 ) ( z 1 z 2 z 3 ) \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} = \begin{pmatrix} 0 & 3 & 0 \\ 2 & -1 & 2 \end{pmatrix} \begin{pmatrix} z_1 \\ z_2 \\ z_3 \end{pmatrix} (x1x2)=(023−102) z1z2z3

例 2

已知矩阵 A = ( 1 1 1 ) A = \begin{pmatrix} 1 \\ 1 \\ 1 \end{pmatrix} A= 111 ( 3 × 1 3×1 3×1 矩阵 ),矩阵 B = ( 1 2 3 ) B = \begin{pmatrix} 1&2&3 \end{pmatrix} B=(123)( 1 × 3 1×3 1×3 矩阵 )。

求 A B AB AB、 B A BA BA、 ( A B ) 2 (AB)^2 (AB)2、 ( A B ) n (AB)^n (AB)n

  1. 矩阵乘法 A B AB AB:
    A B = ( 1 1 1 ) ( 1 2 3 ) = ( 1 × 1 1 × 2 1 × 3 1 × 1 1 × 2 1 × 3 1 × 1 1 × 2 1 × 3 ) = ( 1 2 3 1 2 3 1 2 3 ) AB = \begin{pmatrix} 1 \\ 1 \\ 1 \end{pmatrix}\begin{pmatrix} 1&2&3 \end{pmatrix} = \begin{pmatrix} 1×1 & 1×2 & 1×3 \\ 1×1 & 1×2 & 1×3 \\ 1×1 & 1×2 & 1×3 \end{pmatrix} = \begin{pmatrix} 1 & 2 & 3 \\ 1 & 2 & 3 \\ 1 & 2 & 3 \end{pmatrix} AB= 111 (123)= 1×11×11×11×21×21×21×31×31×3 = 111222333 (结果为 3 × 3 3×3 3×3 矩阵 )

  2. 矩阵乘法 B A BA BA:
    B A = ( 1 2 3 ) ( 1 1 1 ) = 1 × 1 + 2 × 1 + 3 × 1 = 6 BA = \begin{pmatrix} 1&2&3 \end{pmatrix}\begin{pmatrix} 1 \\ 1 \\ 1 \end{pmatrix} = 1×1 + 2×1 + 3×1 = 6 BA=(123) 111 =1×1+2×1+3×1=6(结果为标量 )

  3. 幂运算 ( A B ) 2 (AB)^2 (AB)2:

    由结合律, ( A B ) 2 = A B ⋅ A B = A ( B A ) B = 6 A B = 6 ( 1 2 3 1 2 3 1 2 3 ) (AB)^2 = AB \cdot AB = A(BA)B = 6AB = 6\begin{pmatrix} 1 & 2 & 3 \\ 1 & 2 & 3 \\ 1 & 2 & 3 \end{pmatrix} (AB)2=AB⋅AB=A(BA)B=6AB=6 111222333

    B A BA BA 是标量(常数) ,矩阵乘法中,标量的幂次可单独提取,且不影响 A A A 与 B B B 的"连接"(即 A ⋅ B A \cdot B A⋅B 始终是 A B AB AB )。

  4. 幂运算 ( A B ) n (AB)^n (AB)n:

    同理, ( A B ) n = 6 n − 1 A B = 6 n − 1 ( 1 2 3 1 2 3 1 2 3 ) (AB)^n = 6^{n - 1}AB = 6^{n - 1}\begin{pmatrix} 1 & 2 & 3 \\ 1 & 2 & 3 \\ 1 & 2 & 3 \end{pmatrix} (AB)n=6n−1AB=6n−1 111222333


【线性代数】向量的乘法运算

北境の守卫于 2018-06-29 17:30:45 发布

为明晰向量乘法运算的相关概念,以下对其进行梳理。

0. 综述

常用的向量乘法运算包括:

  • a ⋅ b = ∥ a ∥ ∥ b ∥ cos ⁡ θ \boldsymbol {a} \cdot \boldsymbol {b} = \|\boldsymbol {a}\| \|\boldsymbol {b}\| \cos\theta a⋅b=∥a∥∥b∥cosθ,称为向量的内积,也称为数量积或点积。
  • a × b = ∥ a ∥ ∥ b ∥ sin ⁡ θ \boldsymbol {a} \times \boldsymbol {b} = \|\boldsymbol {a}\| \|\boldsymbol {b}\| \sin\theta a×b=∥a∥∥b∥sinθ,称为向量的外积,也称为向量积或叉积。
  • a b c \] = ( a × b ) ⋅ c \[\\boldsymbol {a} \\boldsymbol {b} \\boldsymbol {c}\] = (\\boldsymbol {a} \\times \\boldsymbol {b}) \\cdot \\boldsymbol {c} \[abc\]=(a×b)⋅c,称为向量的混合积。

1.1 定义

1.2 向量内积性质

注意,向量内积不满足结合律,即一般情况下 ( a ⋅ b ) ⋅ c ≠ a ⋅ ( b ⋅ c ) (\boldsymbol {a} \cdot \boldsymbol {b}) \cdot \boldsymbol {c} \neq \boldsymbol {a} \cdot (\boldsymbol {b} \cdot \boldsymbol {c}) (a⋅b)⋅c=a⋅(b⋅c),这是因为向量内积的结果为标量。

1.3 向量内积的物理意义

向量内积的物理意义是力对物体做功,即力沿位移方向所做的功。

1.4 向量内积的用途

1.4.1 求两个非零向量的夹角
1.4.2 判断两个非零向量是否垂直

通过对应坐标相乘后求和,若结果为 0,则两向量垂直;否则,不垂直。

2. 外积

2.1 向量外积的定义

向量外积的结果是垂直于原向量所确定平面的向量。

通过坐标直接计算外积较为复杂,将其写成行列式形式再展开,更便于记忆。

2.2 向量外积的性质

2.3 向量外积的几何意义

其模长的一半即为以 a \boldsymbol {a} a, b \boldsymbol {b} b 为邻边的三角形的面积。

2.4 向量外积的用途

2.4.1 求与三角形面积相关的问题

3. 混合积

3.1 向量混合积的定义

三个向量的混合积是指先对前两个向量做外积,再将结果与第三个向量做内积,最终得到一个标量,即 [ a b c ] = ( a × b ) ⋅ c [\boldsymbol {a} \boldsymbol {b} \boldsymbol {c}] = (\boldsymbol {a} \times \boldsymbol {b}) \cdot \boldsymbol {c} [abc]=(a×b)⋅c。

混合积的坐标表达式具有规整优美的形式。

3.2 混合积的性质

3.3 混合积的几何意义

3.4 混合积的用途

3.4.1 求与四面体体积相关的问题
3.4.2 判断三个向量是否共面

内容主要来自以下两个文档:


线性代数:矩阵、矩阵乘法与广义矩阵乘法

posted @ 2023-09-17 18:54 RainPPR

一、引言

矩阵是线性代数中的核心概念,是处理线性关系的重要工具。其通常用圆括号或方括号表示,形式如下:

A = ( a 11 ⋯ a 1 n ⋮ ⋱ ⋮ a m 1 ⋯ a m n ) A = \begin {pmatrix} a_{11} & \cdots & a_{1n} \\ \vdots & \ddots & \vdots \\ a_{m1} & \cdots & a_{mn} \end {pmatrix} A= a11⋮am1⋯⋱⋯a1n⋮amn

矩阵具有明确的行数和列数,一个具有 m m m 行 n n n 列的矩阵称为 m × n m \times n m×n 矩阵(读作 " m m m 乘 n n n 矩阵")。

二、矩阵与线性方程组的表示

线性方程组可以通过矩阵乘法的形式简洁表示。例如,对于线性方程组:

{ 7 x 1 + 8 x 2 + 9 x 3 = 13 4 x 1 + 5 x 2 + 6 x 3 = 12 x 1 + 2 x 2 + 3 x 3 = 11 \begin {cases} 7x_1 + 8x_2 + 9x_3 = 13 \\ 4x_1 + 5x_2 + 6x_3 = 12 \\ x_1 + 2x_2 + 3x_3 = 11 \end {cases} ⎩ ⎨ ⎧7x1+8x2+9x3=134x1+5x2+6x3=12x1+2x2+3x3=11

可将其系数、未知量和常数项分别提取为矩阵和向量,写成矩阵乘法形式:

( 7 8 9 4 5 6 1 2 3 ) ( x 1 x 2 x 3 ) = ( 13 12 11 ) \begin {pmatrix} 7 & 8 & 9 \\ 4 & 5 & 6 \\ 1 & 2 & 3 \end {pmatrix} \begin {pmatrix} x_1 \\ x_2 \\ x_3 \end {pmatrix} = \begin {pmatrix} 13 \\ 12 \\ 11 \end {pmatrix} 741852963 x1x2x3 = 131211

上述形式可简记为 A x = b Ax = b Ax=b,其中:

  • A A A 称为系数矩阵,即 A = ( 7 8 9 4 5 6 1 2 3 ) A = \begin {pmatrix} 7 & 8 & 9 \\ 4 & 5 & 6 \\ 1 & 2 & 3 \end {pmatrix} A= 741852963
  • x x x 称为未知量向量,即 x = ( x 1 x 2 x 3 ) x = \begin {pmatrix} x_1 \\ x_2 \\ x_3 \end {pmatrix} x= x1x2x3
  • b b b 称为常数项向量,即 b = ( 13 12 11 ) b = \begin {pmatrix} 13 \\ 12 \\ 11 \end {pmatrix} b= 131211

其本质是:系数矩阵 A A A 左乘未知量列向量 x x x,结果等于常数项列向量 b b b。

三、矩阵的基本运算

(一)线性运算(加减法与数乘)

矩阵的线性运算包括加减法和数乘,运算规则均为逐个元素操作。

  1. 加减法

    只有同型矩阵(即行数和列数均相同的矩阵)才能进行加减运算,运算结果为对应元素分别相加或相减后形成的新矩阵。

    例如:
    ( 1 2 3 4 ) + ( 5 6 7 8 ) = ( 1 + 5 2 + 6 3 + 7 4 + 8 ) = ( 6 8 10 12 ) \begin {pmatrix} 1 & 2 \\ 3 & 4 \end {pmatrix} + \begin {pmatrix} 5 & 6 \\ 7 & 8 \end {pmatrix} = \begin {pmatrix} 1+5 & 2+6 \\ 3+7 & 4+8 \end {pmatrix} = \begin {pmatrix} 6 & 8 \\ 10 & 12 \end {pmatrix} (1324)+(5768)=(1+53+72+64+8)=(610812)

  2. 数乘

    一个数与矩阵相乘,结果为该数与矩阵中每个元素分别相乘后形成的新矩阵。

    例如:
    3 × ( 1 2 3 4 ) = ( 3 × 1 3 × 2 3 × 3 3 × 4 ) = ( 3 6 9 12 ) 3 \times \begin {pmatrix} 1 & 2 \\ 3 & 4 \end {pmatrix} = \begin {pmatrix} 3 \times 1 & 3 \times 2 \\ 3 \times 3 & 3 \times 4 \end {pmatrix} = \begin {pmatrix} 3 & 6 \\ 9 & 12 \end {pmatrix} 3×(1324)=(3×13×33×23×4)=(39612)

(二)转置

矩阵的转置是指将矩阵的行与列互换,转置后的矩阵记为 A T A^\text {T} AT(在矩阵右上角标注 " T \text {T} T")。

例如,一个 2 × 3 2 \times 3 2×3 矩阵的转置为 3 × 2 3 \times 2 3×2 矩阵:
( 1 2 3 3 4 5 ) T = ( 1 3 2 4 3 5 ) \begin {pmatrix} 1 & 2 & 3 \\ 3 & 4 & 5 \end {pmatrix}^\text {T} = \begin {pmatrix} 1 & 3 \\ 2 & 4 \\ 3 & 5 \end {pmatrix} (132435)T= 123345

(三)向量内积

两个维数相同的向量(通常为行向量或列向量)的内积,定义为对应元素乘积的和。

例如,两个三维行向量的内积为:

( 1 2 3 ) × ( 4 5 6 ) = 1 × 4 + 2 × 5 + 3 × 6 = 32 \begin {pmatrix} 1 & 2 & 3 \end {pmatrix} \times \begin {pmatrix} 4 & 5 & 6 \end {pmatrix} = 1 \times 4 + 2 \times 5 + 3 \times 6 = 32 (123)×(456)=1×4+2×5+3×6=32

四、矩阵乘法

(一)朴素矩阵乘法

  1. 运算前提

    设矩阵 A A A 为 n × m n \times m n×m 矩阵,矩阵 B B B 为 m × r m \times r m×r 矩阵(即前一矩阵的列数等于后一矩阵的行数),则两矩阵可相乘,乘积记为 C = A × B C = A \times B C=A×B。

  2. 元素定义

    乘积矩阵 C C C 为 n × r n \times r n×r 矩阵,其第 i i i 行第 j j j 列的元素 C i , j C_{i,j} Ci,j 等于矩阵 A A A 的第 i i i 行向量与矩阵 B B B 的第 j j j 列向量的内积,即:
    C i , j = ∑ k = 1 m A i , k B k , j C_{i,j} = \sum_{k=1}^m A_{i,k} B_{k,j} Ci,j=k=1∑mAi,kBk,j

    该规则可概括为 "左行右列":左矩阵的行与右矩阵的列对应计算。

  3. 示例

    矩阵与向量的乘法是矩阵乘法的特殊情况(向量可视为单列矩阵):

( 1 2 3 4 5 6 ) ( 3 6 9 ) = ( 1 × 3 + 2 × 6 + 3 × 9 4 × 3 + 5 × 6 + 6 × 9 ) = ( 42 96 ) \begin {pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end {pmatrix} \begin {pmatrix} 3 \\ 6 \\ 9 \end {pmatrix} = \begin {pmatrix} 1 \times 3 + 2 \times 6 + 3 \times 9 \\ 4 \times 3 + 5 \times 6 + 6 \times 9 \end {pmatrix} = \begin {pmatrix} 42 \\ 96 \end {pmatrix} (142536) 369 =(1×3+2×6+3×94×3+5×6+6×9)=(4296)

(二)单位矩阵

单位矩阵是一类特殊的方阵(行数等于列数),记为 I I I。其特点是:主对角线(从左上到右下)元素均为 1,其余元素均为 0。

单位矩阵的核心性质是:对于任意矩阵 A A A,若 I I I 与 A A A 可乘,则 I A = A IA = A IA=A 且 A I = A AI = A AI=A(类似于数 "1" 在乘法中的作用)。

例如:
( 1 2 3 4 4 5 6 7 7 8 9 0 ) ( 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ) = ( 1 2 3 4 4 5 6 7 7 8 9 0 ) \begin {pmatrix} 1 & 2 & 3 & 4 \\ 4 & 5 & 6 & 7 \\ 7 & 8 & 9 & 0 \end {pmatrix} \begin {pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end {pmatrix} = \begin {pmatrix} 1 & 2 & 3 & 4 \\ 4 & 5 & 6 & 7 \\ 7 & 8 & 9 & 0 \end {pmatrix} 147258369470 1000010000100001 = 147258369470

(三)广义矩阵乘法

朴素矩阵乘法可推广为更一般的形式,称为广义矩阵乘法。

对于 n × m n \times m n×m 矩阵 A A A 和 m × r m \times r m×r 矩阵 B B B,广义矩阵乘法定义为:

C i j = A × B = ⨁ k = 1 m ( A i k ⊗ B k j ) C_{ij} = A \times B = \bigoplus_{k=1}^m (A_{ik} \otimes B_{kj}) Cij=A×B=k=1⨁m(Aik⊗Bkj)

其中, ⊗ \otimes ⊗ 和 ⊕ \oplus ⊕ 是两种运算(称为 "乘法" 和 "加法" 的推广),该形式称为 ( ⊗ , ⊕ ) (\otimes, \oplus) (⊗,⊕) 型矩阵乘法。

  1. 结合律条件
    广义矩阵乘法满足结合律的前提是:
  • ⊕ \oplus ⊕ 运算满足交换律;
  • ⊗ \otimes ⊗ 运算满足结合律和交换律;
  • ⊗ \otimes ⊗ 对 ⊕ \oplus ⊕ 满足分配律,即 ( a ⊕ b ) ⊗ c = ( a ⊗ c ) ⊕ ( b ⊗ c ) (a \oplus b) \otimes c = (a \otimes c) \oplus (b \otimes c) (a⊕b)⊗c=(a⊗c)⊕(b⊗c)。
  1. 常见形式
    实际应用中常见的广义矩阵乘法包括 ( ± , max ⁡ ) (\pm, \max) (±,max)、 ( ± , min ⁡ ) (\pm, \min) (±,min)、 ( ∧ , ∨ ) (\land, \lor) (∧,∨)(其中 ∧ \land ∧ 为逻辑与, ∨ \lor ∨ 为逻辑或)等。

五、矩阵乘法的性质与应用

(一)基本性质

  1. 结合律 :矩阵乘法满足结合律,即 ( A B ) C = A ( B C ) (AB) C = A (BC) (AB)C=A(BC)(其中 A , B , C A, B, C A,B,C 满足可乘条件)。
  2. 交换律 :矩阵乘法不满足一般交换律,即通常 A B ≠ B A AB \neq BA AB=BA。
  3. 对加法的分配律
  • ( A + B ) C = A C + B C (A + B) C = AC + BC (A+B)C=AC+BC;
  • C ( A + B ) = C A + C B C (A + B) = CA + CB C(A+B)=CA+CB。
  1. 对数乘的结合律 : k ( A B ) = ( k A ) B = A ( k B ) k (AB) = (kA) B = A (kB) k(AB)=(kA)B=A(kB)(其中 k k k 为常数)。

(二)应用

  1. 快速幂优化 :利用矩阵乘法的结合律,可采用快速幂思想高效计算矩阵的高次幂(如 A k A^k Ak)。
  2. 线性递推求解 :线性递推关系可转化为矩阵乘法形式,进而通过矩阵快速幂求解递推数列的第 n n n 项。

六、矩阵乘法的代码实现

以下是基于 C++ 的矩阵乘法及快速幂实现示例:

cpp 复制代码
const int N = 110;			// 矩阵的最大大小
const int MOD = 1e9 + 7;	// 取模
 
struct matrix
{
    int n, m, a[N][N];
 
    // 初始矩阵
    matrix() { memset(a, 0, sizeof a); }
    matrix(int _n, int _m) { n = _n, m = _m, memset(a, 0, sizeof a); }
 
    // 单位矩阵
    matrix(int _n)
    {
        n = m = _n;
        for (int i = 1; i <= n; ++i)
            a[i][i] = 1;
    }
 
    // 定义矩阵
    matrix(int _n, int _m, const int t[N][N])
    {
        n = _n, m = _m;
        for (int i = 1; i <= n; ++i)
            for (int j = 1; j <= m; ++j)
                a[i][j] = t[i][j];
    }
 
    // 矩阵乘法
    matrix operator*(const matrix &b) const
    {
        matrix res;
        res.n = n, res.m = b.m;
        for (int i = 1; i <= n; ++i)
            for (int j = 1; j <= b.m; ++j)
                for (int k = 1; k <= m; ++k)
                    res.a[i][j] = (res.a[i][j] + a[i][k] * b.a[k][j] % MOD) % MOD;
        return res;
    }
};
 
// 矩阵快速幂
matrix pow(const int &n, matrix a, int k)
{
    matrix res(n);
    while (k)
    {
        if (k & 1)
            res = res * a;
        k >>= 1, a = a * a;
    }
    return res;
}

七、矩阵乘法的优化

(一)循环置换(缓存优化)

朴素矩阵乘法的循环顺序通常为 i , j , k i, j, k i,j,k,但调整为 i , k , j i, k, j i,k,j 可显著提升效率。原因是该顺序能使矩阵元素的访问更连续,充分利用计算机缓存,减少内存访问开销。

(二)稀疏矩阵优化

对于稀疏矩阵(大部分元素为 0),可通过特判 0 元素直接跳过计算,减少无效运算。但该方法对稠密矩阵(元素多为非 0)无效。


via: