许多计算问题都涉及到为一组未知变量找到值,使得它们同时满足多个线性关系。比如根据供需方程来确定产品的合适价格,或者在预算限制下确定资源的最佳分配。这些情况经常会形成线性方程组。
一个包含两个方程和两个未知变量 x1 和 x2 的系统:
2x1+3x2=7
1x1−1x2=1
我们的目标是找到使这两个方程都成立的 x1 和 x2 的值。虽然我们可以使用基础代数中的代入法或消元法来解这个系统,但线性代数提供了一种更系统、可扩展的方法,尤其是在处理大量方程和变量时。第一步是使用矩阵和向量来表示这个系统。
我们可以把这个系统分成三个不同的部分:
- 变量的系数(即与 x1 和 x2 相乘的数字)。
- 变量本身(x1, x2)。
- 方程右侧的常数(7 和 1)。
我们将这些部分组织成矩阵和向量的形式。
系数矩阵 (A)
我们将变量的系数收集到一个矩阵中,我们称之为 A。矩阵中的每一行对应一个方程,每一列对应一个变量。
对于我们的例子系统:
2x1+3x2=7
1x1−1x2=1
系数是 2、3、1 和 -1。我们将其排列如下:
A=[213−1]
第一行 [23] 包含第一个方程的系数。第二行 [1−1] 包含第二个方程的系数。第一列 [21] 包含 x1 的系数,第二列 [3−1] 包含 x2 的系数。
变量向量 (x)
未知变量被排列成一个列向量,通常表示为 x:
x=[x1x2]
常数向量 (b)
方程右侧的常数也被排列成一个列向量,通常表示为 b:
b=[71]
组装矩阵方程:Ax = b
现在,这些部分是如何组合在一起的呢?回顾上一章中矩阵乘法的定义。我们将系数矩阵 A 乘以变量向量 x:
Ax=[213−1][x1x2]
进行矩阵-向量乘法(A 的每一行与列向量 x 的点积):
Ax=[(2×x1)+(3×x2)(1×x1)+(−1×x2)]=[2x1+3x2x1−x2]
仔细观察得到的向量。它的第一个元素 2x1+3x2,正是我们第一个原始方程的左侧。它的第二个元素 x1−x2,是第二个原始方程的左侧。
原始系统规定这些表达式必须分别等于常数 7 和 1。我们将这些常数记录在向量 b 中。因此,我们可以将整个方程组写成一个单一的矩阵方程:
Ax=b
代入我们的矩阵和向量:
[213−1][x1x2]=[71]
这个紧凑形式 Ax=b 完美地表示了原始的线性方程组。
一般形式
这种表示方式不限于两个方程。任何包含 n 个未知数的 m 个线性方程组:
a11x1+a12x2+⋯+a1nxn=b1
a21x1+a22x2+⋯+a2nxn=b2
⋮
am1x1+am2x2+⋯+amnxn=bm
都可以写成矩阵形式 Ax=b,具体如下:
- A 是 m×n 的系数矩阵:
A=a11a21⋮am1a12a22⋮am2……⋱…a1na2n⋮amn
- x 是 n×1 的变量列向量:
x=x1x2⋮xn
- b 是 m×1 的常数列向量:
b=b1b2⋮bm
这种 Ax=b 格式是线性代数中的标准形式。它将已知的系数 (A)、未知变量 (x) 和目标结果 (b) 分开。这种结构有益处,因为它使我们能够运用矩阵代数中强大的运算和思路,例如矩阵求逆(我们稍后会讨论),以高效地分析和解决这些系统。以这种形式表示数据和关系在许多学科中都很常见,包括机器学习,你可能会在线性回归等算法中遇到它。