深入解析:矩阵的左乘和右乘有什么区别

矩阵的左乘和右乘有什么区别

flyfish

语言表达的问题,中文资料存在冲突表达的时候,这时候去看英文就是这里更多的
读中文为什么会有歧义,因为中文里的“左乘”既可以表示动作的方向,也可以表示位置,就进入了让人绕晕的语言陷阱,先用英文来理解到底是什么,再返回中文。

Left multiplication = pre-multiplication
right multiplication = post-multiplication

Row operations (行操控)→\rightarrowPre-multiplication (前乘/左乘)
Column operations (列操作)→\rightarrowPost-multiplication (后乘/右乘)

前置知识

初等矩阵 (Elementary Matrix) 就是由 单位矩阵 (Identity Matrix,III) 经过 只有一步的初等行变换(或列变换)变来的矩阵。

可以把它想象成单位矩阵III 的变身版。

单位矩阵 III(以 3阶 为例):
I=(100010001) I = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}I=100010001

初等矩阵的三种变身方式

线性代数中规定了三种初等行变换,对应地,就有三种类型的初等矩阵。只要对III 做以下任意一个动作,得到的矩阵就是初等矩阵EEE

1. 交换两行 (Interchange)

把单位矩阵的某两行互换位置。
动作:交换第 1 行和第 2 行。
得到的初等矩阵EEE
E=(010100001) E = \begin{pmatrix} \mathbf{0} & \mathbf{1} & 0 \\ \mathbf{1} & \mathbf{0} & 0 \\ 0 & 0 & 1 \end{pmatrix}E=010100001

2. 倍乘 (Scaling)

把单位矩阵的某一行乘以一个非零常数kkk
动作:把第 2 行乘以 5。
得到的初等矩阵EEE
E=(100050001) E = \begin{pmatrix} 1 & 0 & 0 \\ 0 & \mathbf{5} & 0 \\ 0 & 0 & 1 \end{pmatrix}E=100050001

3. 倍加 (Replacement / Row Addition)

把单位矩阵的某一行乘以kkk后加到另一行上去。
动作:把第 1 行乘以 -3 加到第 3 行上。
得到的初等矩阵EEE
E=(100010−301) E = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ \mathbf{-3} & 0 & 1 \end{pmatrix}E=103010001

倘若想对矩阵AAA做交换两行的操作,只需要找到对应的那个初等矩阵 EEE(即由 III经过同样的交换操作得到的EEE)。然后算出E⋅AE \cdot AEA变换后的就是,结果就AAA

所有的初等矩阵都是可逆的(Invertible)。因为每一个初等变换(交换、乘数、倍加)都是可以撤销的,所以对应的初等矩阵也可以通过逆矩阵还原回去。

交换了行,再交换一次就回去了。乘以 5,除以 5 就回去了。加了 3 倍,减去 3 倍就回去了。

举例说明

先说结论
左乘 (Left Multiplication): 矩阵 EEEAAA 的左边 (E⋅AE \cdot AEA) →\rightarrowAAA 进行 行变换
右乘 (Right Multiplication): 矩阵 EEEAAA 的右边 (A⋅EA \cdot EAE) →\rightarrowAAA 进行 列变换

为了让彻底明白,用同一个初等矩阵(Elementary Matrix)和同一个原始矩阵,分别做左乘和右乘,

1. 准备工作

假设有一个原始矩阵AAA要操作的对象):就是(这
A=(1234) A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}A=(1324)

现在,需要一个初等矩阵 EEE
:就是假设要执行的操作将第二行(或第二列)乘以 10
对应的初等矩阵EEE 是:
E=(10010) E = \begin{pmatrix} 1 & 0 \\ 0 & 10 \end{pmatrix}E=(10010)

2. 具体的例子对比

情况一:左乘 (E⋅AE \cdot AEA) →\rightarrow 行变换

EEE 放在 AAA的左边进行矩阵乘法:

E⋅A=(10010)⏟操作矩阵⋅(1234) E \cdot A = \underbrace{\begin{pmatrix} 1 & 0 \\ \mathbf{0} & \mathbf{10} \end{pmatrix}}_{\text{操作矩阵}} \cdot \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}EA=操作矩阵(10010)(1324)

运算过程:
第一行:(1×1+0×3,1×2+0×4)=(1,2)(1 \times 1 + 0 \times 3, \quad 1 \times 2 + 0 \times 4) = (1, 2)(1×1+0×3,1×2+0×4)=(1,2)→\rightarrow 没变。
第二行:(0×1+10×3,0×2+10×4)=(30,40)(0 \times 1 + 10 \times 3, \quad 0 \times 2 + 10 \times 4) = (30, 40)(0×1+10×3,0×2+10×4)=(30,40)

结果:
(123040) \begin{pmatrix} 1 & 2 \\ \mathbf{30} & \mathbf{40} \end{pmatrix}(130240)

观察: 原始矩阵 AAA第二行被乘以了 10,而列之间没有发生交互。


情况二:右乘 (A⋅EA \cdot EAE) →\rightarrow 列变换

EEE 放在 AAA的右边进行矩阵乘法:

A⋅E=(1234)⋅(10010)⏟管理矩阵 A \cdot E = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} \cdot \underbrace{\begin{pmatrix} 1 & 0 \\ \mathbf{0} & \mathbf{10} \end{pmatrix}}_{\text{操作矩阵}}AE=(1324)操作矩阵(10010)

运算过程:
第一列:(1×1+2×0,3×1+4×0)=(1,3)(1 \times 1 + 2 \times 0, \quad 3 \times 1 + 4 \times 0) = (1, 3)(1×1+2×0,3×1+4×0)=(1,3)→\rightarrow 没变。
第二列:(1×0+2×10,3×0+4×10)=(20,40)(1 \times 0 + 2 \times 10, \quad 3 \times 0 + 4 \times 10) = (20, 40)(1×0+2×10,3×0+4×10)=(20,40)

结果:
(120340) \begin{pmatrix} 1 & \mathbf{20} \\ 3 & \mathbf{40} \end{pmatrix}(132040)

观察: 原始矩阵 AAA第二列被乘以了 10,而行之间没有发生交互。


这种区别取决于矩阵乘法的定义方式:

乘法方向数学形式几何/逻辑含义影响范围
左乘 (E⋅AE \cdot AEA)EEE 的行 ×\times×AAA 的列结果矩阵的每一,是 AAA 中各的线性组合。改变 Row (行)
右乘 (A⋅EA \cdot EAE)AAA 的行 ×\times×EEE 的列结果矩阵的每一,是 AAA 中各的线性组合。改变 Column (列)

在中文数学表达习惯中,“A 左乘 B” 的标准含义是:
A⋅B A \cdot BAB
(A 在左,B 在右)

所以:

  1. 想表达 行变换 (E⋅AE \cdot AEA):
    可以说:“EEE 左乘 AAA” (E left-multiplies A)
    或者更清楚点:“AAA 的左边乘上 EEE

  2. 想表达 列变换 (A⋅EA \cdot EAE):
    可以说:“EEE 右乘 AAA” (E right-multiplies A)
    或者更清楚点:“AAA 的右边乘上 EEE

习惯也仅仅是习惯,不同的人有不同的习惯。
为了交流清晰,我最推荐使用“在 A 的左边/右边乘上 E”这种表述不会引起误会。

例如下面的表述,不会产生歧义

假设有一个 3×3 矩阵 A:

A=[123456789] A = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \\ \end{bmatrix}A=147258369

1. 左乘 → 做初等行变换

一个初等行变换。就是想把 A 的第1行和第2行交换,这就

对应的初等矩阵 E₁ 是对 3×3 单位矩阵把第1行和第2行交换得到的:

E1=[010100001] E_1 = \begin{bmatrix} 0 & 1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \\ \end{bmatrix}E1=010100001
在 A 的左边乘上 E₁

E1A=[010100001][123456789]=[456123789] E_1 A = \begin{bmatrix} 0 & 1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \\ \end{bmatrix} \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \\ \end{bmatrix} = \begin{bmatrix} 4 & 5 & 6 \\ 1 & 2 & 3 \\ 7 & 8 & 9 \\ \end{bmatrix}E1A=010100001147258369=417528639

可以看到:只影响了行,第1行和第2行交换了,列没有动。

2. 右乘 → 做初等列变换

现在想对同一个矩阵 A 做同样的操作,但交换的是第1列和第2列

在 A 的右边乘上 E₁

AE1=[123456789][010100001]=[213546879] A E_1 = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \\ \end{bmatrix} \begin{bmatrix} 0 & 1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \\ \end{bmatrix} = \begin{bmatrix} 2 & 1 & 3 \\ 5 & 4 & 6 \\ 8 & 7 & 9 \\ \end{bmatrix}AE1=147258369010100001=258147369

可以看到:只影响了列,第1列和第2列交换了,行没有动。

“左行右列”—— 左乘管行,右乘管列。

Left multiplication (pre-multiplication) by an elementary matrix represents the corresponding elementary row operation, while right multiplication (post-multiplication) represents the corresponding elementary column operation.

posted on 2025-12-25 10:17  ljbguanli  阅读(0)  评论(0)    收藏  举报