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

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

flyfish

这里更多的是语言表达的问题,中文资料存在冲突表达的时候,这时候去看英文

读中文为什么会有歧义,因为中文里的"左乘"既可以表示动作的方向,也可以表示位置,就进入了让人绕晕的语言陷阱,先用英文来理解到底是什么,再返回中文。

Left multiplication = pre-multiplication

right multiplication = post-multiplication

R ow operations (行操作) →\rightarrow→ P re-multiplication (前乘/左乘)
C olumn operations (列操作) →\rightarrow→ Post-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= 10−3010001

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

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

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

举例说明

先说结论
左乘 (Left Multiplication): 矩阵 EEE 在 AAA 的左边 (E⋅AE \cdot AE⋅A) →\rightarrow→ 对 AAA 进行 行变换
右乘 (Right Multiplication): 矩阵 EEE 在 AAA 的右边 (A⋅EA \cdot EA⋅E) →\rightarrow→ 对 AAA 进行 列变换

为了让彻底明白,用同一个初等矩阵 (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 AE⋅A) →\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} E⋅A=操作矩阵 (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 EA⋅E) →\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{操作矩阵}} A⋅E=(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 AE⋅A) EEE 的行 ×\times× AAA 的列 结果矩阵的每一 ,是 AAA 中各的线性组合。 改变 Row (行)
右乘 (A⋅EA \cdot EA⋅E) AAA 的行 ×\times× EEE 的列 结果矩阵的每一 ,是 AAA 中各的线性组合。 改变 Column (列)

在中文数学表达习惯中,"A 左乘 B " 的标准含义是:
A⋅B A \cdot B A⋅B

(A 在左,B 在右)

所以:

  1. 想表达 行变换 (E⋅AE \cdot AE⋅A):

    可以说:"EEE 左乘 AAA " (E left-multiplies A)

    或者更清楚点:"在 AAA 的左边乘上 EEE"

  2. 想表达 列变换 (A⋅EA \cdot EA⋅E):

    可以说:"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=010100001123456789=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= 010100001 147258369 = 417528639

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

2. 右乘 → 做初等列变换

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

在 A 的右边乘上 E₁

AE1=123456789010100001=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= 147258369 010100001 = 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.

相关推荐
科技大视界1 小时前
TikTok广告素材投放工具:从官方后台到AIGC一体化矩阵构建高效投放矩阵
人工智能·矩阵·aigc
闪电悠米4 小时前
力扣hot100-54.螺旋矩阵-模拟边界控制详解
算法·leetcode·矩阵
待磨的钝刨5 小时前
深入理解主成分分析(PCA)
人工智能·线性代数·算法·机器学习
Xzaveir_7771 天前
OPPO、vivo、荣耀号码认证:多终端拨测矩阵与异常复现
大数据·网络·科技·矩阵·产品经理·ai-native
闪电悠米1 天前
力扣hot100-73.矩阵置零-标记数组详解
算法·leetcode·矩阵
yurenshi16682 天前
20 账号以内矩阵怎么选?聚媒通、融媒宝、新榜小豆芽、矩阵通功能、价格实测对比
线性代数·矩阵
yurenshi16682 天前
自媒体矩阵防封号工具测评:聚媒通 IP 隔离版对比融媒宝、新榜两款工具优劣
tcp/ip·矩阵·媒体
yurenshi16682 天前
自媒体多账号管理工具 4 款实测:聚媒通 / 融媒宝 / 新榜小豆芽 / 矩阵通横向对比,快速选型
大数据·矩阵·媒体
FakeOccupational2 天前
【数学 场论数学基础】微分算子:度量张量(Metric tensor) + 雅可比矩阵+度量张量g_{ij}+平直空间范数
线性代数·矩阵
邓码农0072 天前
批量发布 + 数据分析横评|聚媒通、融媒宝、新榜小豆芽、矩阵通优缺点全面拆解
矩阵·数据挖掘·数据分析