线性代数 | 矩阵运算
注:本文为 “线性代数 | 矩阵运算” 相关合辑。
略作重排,未整理去重。
如有内容异常,请看原文。
线性代数 – 矩阵基本计算(加减乘法)
二十五画生已于 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 就是同型矩阵。
若两个同型矩阵的对应元素相等,则称这两个矩阵相等。即矩阵相等的前提是它们为同型矩阵。
二、矩阵与行列式的区别
- 本质上,矩阵是一个数表,而行列式是一个数。
- 符号:矩阵通常用 ( ) \\left ( \\right) () 或 [ ] [ ] [] 表示,而行列式用 ∣ ∣ \\left| \\right| ∣∣ 表示。
- 形状上,矩阵不一定是方阵,但是行列式一定是方阵,即行数等于列数。
三、矩阵的运算
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、矩阵乘法不满足的三条规律
-
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 可交换。
-
若 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;但在矩阵运算中该结论不成立。
-
若 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、矩阵乘法的运算规律
-
结合律: ( A B ) C = A ( B C ) (AB) C = A (BC) (AB)C=A(BC)
-
分配律: ( 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(注意:由于矩阵乘法的特殊性,矩阵的左右位置具有严格意义,不可随意调换,即矩阵乘法不满足交换律)。
-
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=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
(再次注意:矩阵的乘法不满足交换律。)
(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 (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 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 (A−E)2=A2−AE−EA+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 (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 的矩阵变换,涉及矩阵乘法在线性替换中的应用 。
- 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
- 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
- 化简 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 矩阵 )。
求 AB AB AB、 BA BA BA、 (AB ) 2 (AB)^2 (AB)2、 (AB ) n (AB)^n (AB)n
-
矩阵乘法 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 矩阵 ) -
矩阵乘法 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(结果为标量 ) -
幂运算 ( 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 )。
-
幂运算 ( 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 定义
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 向量混合积的定义
三个向量的混合积是指先对前两个向量做外积,再将结果与第三个向量做内积,最终得到一个标量,即 [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= 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
上述形式可简记为 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 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) -
数乘:
一个数与矩阵相乘,结果为该数与矩阵中每个元素分别相乘后形成的新矩阵。
例如:
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
四、矩阵乘法
(一)朴素矩阵乘法
-
运算前提:
设矩阵 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。 -
元素定义:
乘积矩阵 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=1∑mAi,kBk,j该规则可概括为 “左行右列”:左矩阵的行与右矩阵的列对应计算。
-
示例:
矩阵与向量的乘法是矩阵乘法的特殊情况(向量可视为单列矩阵):
( 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=1⨁m(Aik⊗Bkj)
其中, ⊗ \\otimes ⊗ 和 ⊕ \\oplus ⊕ 是两种运算(称为 “乘法” 和 “加法” 的推广),该形式称为 (⊗,⊕) (\\otimes, \\oplus) (⊗,⊕) 型矩阵乘法。
- 结合律条件:
广义矩阵乘法满足结合律的前提是:
- ⊕ \\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)。
- 常见形式:
实际应用中常见的广义矩阵乘法包括 ( ± , max ) (\\pm, \\max) (±,max)、 ( ± , min ) (\\pm, \\min) (±,min)、 ( ∧ , ∨ ) (\\land, \\lor) (∧,∨)(其中 ∧ \\land ∧ 为逻辑与, ∨ \\lor ∨ 为逻辑或)等。
五、矩阵乘法的性质与应用
(一)基本性质
- 结合律:矩阵乘法满足结合律,即 ( A B ) C = A ( B C ) (AB) C = A (BC) (AB)C=A(BC)(其中 A , B , C A, B, C A,B,C 满足可乘条件)。
- 交换律:矩阵乘法不满足一般交换律,即通常 A B ≠ B A AB \\neq BA AB=BA。
- 对加法的分配律:
- ( 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。
- 对数乘的结合律: k ( A B ) = ( k A ) B = A ( k B ) k (AB) = (kA) B = A (kB) k(AB)=(kA)B=A(kB)(其中 k k k 为常数)。
(二)应用
- 快速幂优化:利用矩阵乘法的结合律,可采用快速幂思想高效计算矩阵的高次幂(如 A k A^k Ak)。
- 线性递推求解:线性递推关系可转化为矩阵乘法形式,进而通过矩阵快速幂求解递推数列的第 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/
- [1] 矩阵左乘和右乘的区别_高三网
-
Matrix Multiplication
https://rainppr.dns-dynamic.net/matrixmultiplication/