> 技术文档 > 线性代数 | 矩阵运算

线性代数 | 矩阵运算

注:本文为 “线性代数 | 矩阵运算” 相关合辑。
略作重排,未整理去重。
如有内容异常,请看原文。


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

二十五画生已于 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= a1a2an

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} 000000000

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= 0011101001000110

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=CA=CB

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 110201311 = 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、矩阵的可交换

AB=BA AB = BA AB=BA,则称矩阵 A A A B B B 可交换。当题目告知 A A A B B B 可交换时,即表明着 AB=BA 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 AB 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 BA BA BA 的结果矩阵为 3×3 3 \\times 3 3×3 矩阵)。

显然,二者结果不相等。

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

五、矩阵的幂运算

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

矩阵的幂运算定义为: A k =AA⋯A A^k = AA\\cdots A Ak=AAA(共 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

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

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

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

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

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

同时:

(A+B ) 2 ≠ A 2 +2AB+ 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 +BA+AB+ 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

显然,

2AB≠BA+AB 2AB \\neq BA + AB 2AB=BA+AB

同理:

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

证明:

(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 = A^2 - BA - AB + B^2 (AB)(AB)=(AB)A(AB)B=A2BAAB+B2

显然,

−2AB≠−BA−AB -2AB \\neq -BA - AB 2AB=BAAB

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

但是,对于

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

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

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

AE=EA AE = EA AE=EA BE=EB BE = EB BE=EB

因此:

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

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

是成立的。

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

例 1

给定两个方程组:

x 1 = y 1 − y 2 x_1 = y_1 - y_2 x1=y1y2 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=z12z2+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)=(1111)(y1y2)(y1y2)=(111211) 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)=(1111)(111211) 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)=(023102) 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 矩阵 )。

AB AB AB BA BA BA (AB ) 2 (AB)^2 (AB)2 (AB ) 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=ABAB=A(BA)B=6AB=6 111222333

    B A BA BA 是标量(常数),矩阵乘法中,标量的幂次可单独提取,且不影响 A A A B B B 的“连接”(即 A ⋅ B A \\cdot B AB 始终是 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=6n1AB=6n1 111222333


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

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

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

0. 综述

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

  • a ⋅ b = ∥ a ∥ ∥ b ∥ cos ⁡ θ \\boldsymbol {a} \\cdot \\boldsymbol {b} = \\|\\boldsymbol {a}\\| \\|\\boldsymbol {b}\\| \\cos\\theta ab=a∥∥bcosθ,称为向量的内积,也称为数量积或点积。
  • a × b = ∥ a ∥ ∥ b ∥ sin ⁡ θ \\boldsymbol {a} \\times \\boldsymbol {b} = \\|\\boldsymbol {a}\\| \\|\\boldsymbol {b}\\| \\sin\\theta a×b=a∥∥bsinθ,称为向量的外积,也称为向量积或叉积。
  • [ 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 定义

线性代数 | 矩阵运算

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}) (ab)c=a(bc),这是因为向量内积的结果为标量。

线性代数 | 矩阵运算

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 向量混合积的定义

三个向量的混合积是指先对前两个向量做外积,再将结果与第三个向量做内积,最终得到一个标量,即 [abc]=(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= a11am1a1namn

矩阵具有明确的行数和列数,一个具有 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

上述形式可简记为 Ax=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 , kB k , j C_{i,j} = \\sum_{k=1}^m A_{i,k} B_{k,j} Ci,j=k=1mAi,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 可乘,则 IA=A IA = A IA=A AI=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=1m(AikBkj)

其中, ⊗ \\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) (ab)c=(ac)(bc)
  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++ 的矩阵乘法及快速幂实现示例:

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:

  • 线性代数 – 矩阵基本计算(加减乘法)_矩阵运算 - CSDN 博客
    https://blog.csdn.net/qq_51216031/article/details/134521526

  • 【线性代数】向量的乘法运算_向量 a・b 与 axb 公式 - CSDN 博客
    https://blog.csdn.net/baishuo8/article/details/80858692

    • 向量的乘法运算 - 长于举例丰富,形象生动
      https://wenku.baidu.com/view/0587a076a417866fb84a8eab.html

    • 向量的乘法 - 长于公式性质列举完整
      https://wenku.baidu.com/view/7bd3374d571252d380eb6294dd88d0d233d43c33.html

  • 线性代数 —— 矩阵、矩阵乘法、广义矩阵乘法 学习笔记 - RainPPR - 博客园
    https://www.cnblogs.com/RainPPR/p/matrix-multiplication.html

    • [1] 矩阵左乘和右乘的区别_高三网
      http://www.gaosan.com/gaokao/414210.html
    • [2] 矩阵 - OI Wiki
      https://oi-wiki.org/math/linear-algebra/matrix/
    • [3] Matrix Multiplication_
      http://matrixmultiplication.xyz/
  • Matrix Multiplication
    https://rainppr.dns-dynamic.net/matrixmultiplication/

QQ头像资源