对于
3×3
的例子,我们能够写出所有的公式。可以列出消去步骤,一个方程减去另一个方程的倍数达到三角矩阵的形式。对于一个大的系统,这种跟踪消去的步骤太长了,所以我们需要更加简洁的记录方式。
我们现在引进矩阵符号来描述开始的系统,用矩阵乘法来描述计算步骤会更简单。注意三种不同类型的量都出现在例子中:
Nine coefficientsThree unknownsThree right−hand sides2u4u−2u+−+v6v7v++w2w===5−29(1)
右边是列向量
b
。左边是未知量
u,v,w。另外,左边有九个系数(其中一个碰巧是零)。自然地,我们用一个向量来表示三个未知量:
The unknown is x=⎡⎣⎢uvw⎤⎦⎥The solution is x=⎡⎣⎢112⎤⎦⎥
九个系数分为三行和三列,得到
3×3
的矩阵:
Coefficient matrixA=⎡⎣⎢24−21−67102⎤⎦⎥
A
是一个方阵,因为方程个数等于未知量的个数。如果
n个方程有
n
个未知量,那么我们有
n×n矩阵。更一般地,可能
m
个方程有
n个未知量。那么
A
是
m行
n
列的长方形。它将是一个
m×n矩阵。
矩阵互相相加,或乘以某个常数值,每一次执行一列的时候,效果和向量完全一样。事实上我们可以将向量看做矩阵的特殊情况;他们是只有一列的矩阵。和向量一样,如果两个矩阵形状相同时,他们才能执行加法:
Additon A+B⎡⎣⎢230104⎤⎦⎥+⎡⎣⎢1−31212⎤⎦⎥=⎡⎣⎢301316⎤⎦⎥
Multiplication 2A⎡⎣⎢230104⎤⎦⎥=⎡⎣⎢460208⎤⎦⎥
矩阵和向量相乘
我们想用三个未知量
u,v,w
重写方程,得到简化的矩阵形式
Ax=b
。全写出来就是,矩阵乘以向量等于向量:
Matrix form Ax=b⎡⎣⎢24−21−67102⎤⎦⎥⎡⎣⎢uvw⎤⎦⎥=⎡⎣⎢5−29⎤⎦⎥(2)
右边
b
是非齐次项列向量。左边是
A×x。我们准确的定义这个乘法以便于它能够重现最初的系统。
Ax
的第一项来自
A
的第一行乘以列向量
x;
Row times column[211]⎡⎣⎢uvw⎤⎦⎥=[2u+v+w]=[5](3)
乘积
Ax
的第二部分是
4u−6v+0w
,来自于
A
的第二行。矩阵方程
Ax=b等价于方程(1)中三个联立的方程组。
行乘列是所有矩阵乘法的基础。两个向量相乘得到一个数。这个数称为两个向量的内积。换句话说,
1×n
矩阵(行向量)和
n×1
矩阵(列向量)相乘得到一个
1×1
矩阵:
Inner product[211]⎡⎣⎢112⎤⎦⎥=[2⋅1+1⋅1+1⋅2]=[5]
这表明给出的解
x=(1,1,2)
满足第一个方程。
矩阵
A
和一个向量x相乘有两种方法。一种方法是一次乘以一行,
A
的每行和x结合给出
Ax
的一部分。当
A
有三行是,存在三个内积:
Ax by rows⎡⎣⎢131101614⎤⎦⎥⎡⎣⎢250⎤⎦⎥=⎡⎣⎢1⋅2+1⋅5+6⋅03⋅2+0⋅5+3⋅01⋅2+1⋅5+4⋅0⎤⎦⎥=⎡⎣⎢767⎤⎦⎥(4)
通常这就是
Ax
的解释,但是第二种方法同样重要。事实上,它更重要!它是一次乘以一列。
Ax
乘积一下就计算出来,就像矩阵
A
三列的组合:
Ax by clumns2⎡⎣⎢131⎤⎦⎥+5⎡⎣⎢101⎤⎦⎥+0⎡⎣⎢634⎤⎦⎥=⎡⎣⎢767⎤⎦⎥(5)
答案就是两倍的第1列加5倍的第2列。它对应于线性方程组的列图像。如果右边
b
是7,6,7,那么解就是2,5,0。当然行图像也是如此(我们最终要做相同的乘法)。
列规则将会一遍又一遍的使用,现在我们在强调一遍:
1、Ax的乘积可以利用方程(5)中的列找出来,因此
Ax
是
A
列的组合,其中系数是x的元素。
为了让
A×x
在
n
维空间中,我们需要一个符号来表示A的每一项。第
i
行,第j列的元素用
aij
表示。第一个下标给出行数,第二个下标指示列。(在方程(4)中,
a21
是3,
a13
是6)如果
A
是一个m×n矩阵,然后索引从1到
m
-有m行,索引
j
从1到n。合在一起,矩阵有
mn
个元素并且
amn
位于右下角。
一个下标对向量来说已经足够了。
x
的第j个元素用
xj
表示。(以上的乘法有
x1=2,x2=5,x3=0
)通常
x
写成列向量,就像n×1矩阵。但有时它写成一条线,如
x=(2,5,0)
。括号和逗号强调它不是
1×3
矩阵。而是一个列向量,它只是暂时躺着而已。
为了描述乘积
Ax
,我们使用“sigma”符号求和
Σ
表示和:
Sigma notationThe ith component of Ax is∑j=1naijxj
这个和取
A
的第
i行。索引
j
取1到
n的所有值,然后将结果加起来-和就是
ai1x1+ai2x2+⋯+ainxn
。
我们再次见到行的长度(
A
的列数)必须匹配x的长度。一个
m×n
矩阵乘以
n
维向量(得到m维向量)。求和符号比啥都写满简单许多,但是矩阵符号要更好。(爱因斯坦用“张量符号”,其中重复的索引意味着求和。他写
aijxj
或
ajixj
,我们不是爱因斯坦,所以保持用符号
Σ
)
消元的矩阵形式
到目前为止,对方程组,我们有一种方便速记的形式
Ax=b
。 那么在消元过程中是怎么进行操作的呢?在我们的示例中,第一步是中用第二个方程减去第一个方程的2倍。对于右边就是,
b
的第二个元素减去第一个元素的2倍。如果我们用初等矩阵(或消元矩阵)乘以b,会取得同样的效果:
Elementary matrixE=⎡⎣⎢1−20010001⎤⎦⎥
根据矩阵和向量乘法的规则得以证实:
Eb=⎡⎣⎢1−20010001⎤⎦⎥⎡⎣⎢5−29⎤⎦⎥=⎡⎣⎢5−129⎤⎦⎥
5和9保持不变(因为
E
的行1,0,0和0,0,1)。第一次消元步骤后,得到新的第二个元素-12。
它很容易用矩阵E描述,它单独执行消元步骤。我们也注意到“单位矩阵”,不执行任何操作。
2、单位矩阵
I
主对角线上为1,其余地方为0,不改变向量的值。基本矩阵Eij表示第
i
行减去ℓ倍的
j
行。Eij包含第
i
行第j列的
−ℓ
。
I=⎡⎣⎢100010001⎤⎦⎥has Ib=bE31=⎡⎣⎢10−ℓ010001⎤⎦⎥has E31b=⎡⎣⎢b1b2b3−ℓb1⎤⎦⎥
Ib=b
类似于乘1运算。典型的消元步骤是
E31
。重要的问题是:左边的
A
发生了什么?
为了保持相等,Ax=b两边必须使用相同的操作。换句话说,我们也必须用矩阵
E
乘以向量Ax。我们最初的矩阵
E
从第二行减去第一行的2倍,这一步之后,新的简单方程组(等价于旧的)就是E(Ax)=Eb。因为第一个主元下面都是零,所以它更简单。因为我们可以恢复到最初的方程组(通过第二行加上第一行的2倍)所以他们是等价的。所以这两个方程组具有完全相同的解
x
。
矩阵乘法
现在我们来看最重要的问题:我们如何计算两个矩阵相乘?我们可以从高斯消元法中得到部分线索:我们知道最初的系数矩阵A,消元矩阵
E
,而且还知道消元后的结果EA。我们希望并期望
E=⎡⎣⎢1−20010001⎤⎦⎥times A=⎡⎣⎢24−21−67102⎤⎦⎥gives EA=⎡⎣⎢20−21−871−22⎤⎦⎥
矩阵
A
的第二行减去第一行的两倍。矩阵乘法和消元法的行操作比较一致。我们可以将结果写成
E(Ax)=Eb或
(EA)x=Eb
。 精确地构造矩阵
EA
使得方程成立,括号不是必须的:
Matrix multiplication(EA×x)equals(E×Ax)We just write EAx
这是”结合律”,就像
2×(3×4)=(2×3)×4
。交换律似乎显而易见,所以很难想象它可能是错的。但是“交换律”
2×3=3×2
对于矩阵来说就不成立
EA≠AE
。
关于矩阵乘法还有另一项要求。我们知道如何计算
Ax
,一个矩阵和一个向量,新的定义应该也使它满足。当矩阵
B
只包含一个列x时,矩阵与矩阵
AB
的乘积应该和矩阵与向量的乘积
Ax
相同。更重要的是:当
B
包含几列b1,b2,b3时,
AB
的列应该是
Ab1,Ab2,Ab3
!
Multiplication by columnsAB=A⎡⎣⎢b1b2b3⎤⎦⎥=⎡⎣⎢Ab1Ab2Ab3⎤⎦⎥
我们的第一个要求与行有关,而这个与列有关。
A
的第三种方法是描述AB的每一项。事实上,只有一个可能的规则,不知道是谁发现了它,它恒成立,因为这个规则,我们不用让每对矩阵相乘。如果他们是方形的,他们肯定有相同的大小。如果是矩形的,他们形状肯定不一样;
A
的列数必须等于B的行数。然后
A
可以成B的每一列。
如果
A
是m×n,
B
是n×p,那么可以做乘法。乘积
AB
是
m×p
。现在我们找出
AB
i
行j列的元素。
3、
AB
的
i,j
项是
A
的第i行与
B
的第j列的内积。在图1中,
AB
的第3,2项从3行,2列计算得到:
(AB)32=a31b12+a32b22+a33b32+a34b42(6)
图1:
3×4
的矩阵
A
乘以4×2的 矩阵
B
得到3×2的矩阵
AB
注意,当矩阵没有经过消元处理时我们写成
AB
。因为初等矩阵
E
,所以我们前面的示例中写成EA。之后我们有
PA
或
LU
或
LDU
。矩阵乘法的规则都是一样。
例1:
AB=[2430][152−100]=[1741800]
17
就是
(2)(1)+(3)(5)
,
A
的第一行与
B的第一列内积的结果。
8
就是
(4)(2)+(0)(1),
A
的第二行与
B的第二列内积的结果。
B
的第三列是零,所以AB也是零。
B
包含三列,B分别乘以每一列。
AB
的每一列都是
A
列的组合。就像矩阵和向量乘法一样,A列的系数就是
B
中的元素。
例2:
Row exchange matrix[0110][2738]=[7283]
例3:单位矩阵
I
不改变任何矩阵:
Identity matrixIA=AandBI=B
重要提示:乘法
AB
也可以一次计算一行。在例中1中,
AB
的第一行可以使用
A
第一行的数字2和3。这些数字给出2[row 1]+3[row 2]=[17 1 0]。就像之前的消元法,
AB
的每行是
B
行的组合。
4、(1)AB的元素是行和列的乘积:
(AB)ij=(row i of A)×(column j of B)
(2)
AB
的每一列是矩阵和列的乘积:
column j of AB=A×(column j of B)
(3)
AB
的每一行是行和矩阵的乘积:
row i of AB=(row of A)×B
这引出了矩阵乘法的一个关键性质。假设三个矩阵
A,B,C
的形状(可能是矩形)可以加倍,
A,B
的行乘以
B,C
的列,那么关键性质就是:
5、矩阵乘法满足结合律:
(AB)C=A(BC)
,写作
ABC
。
AB×C=A×BC
。如果
C
刚好是一个向量(只有一列的矩阵),这正好就是之前提到的(EA)x=E(Ax),这是矩阵乘法规则的基础。如果
C
有几列,我们可以一列列考虑,所利用几次法则。当计算几个矩阵乘法时,括号是没必要的。
还有两个性质需要提到-一个是矩阵乘法满足的,另一个是它不满足的。
6、矩阵乘法满足分配律:
A(B+C)=AB+ACand(B+C)D=BD+CD
当然这些矩阵的形状必须匹配-
B,C
有相同的形状,这样的话他们才可以相加。这个定律的证明太过无聊这里不再陈述。
下面这条性质就不满足了:
7、矩阵乘法不满足交换律:通常\
FE≠EF
例4:假设
E
是第二行减去第一行的2倍,F是第一行加到第三行上:
E=⎡⎣⎢1−20010001⎤⎦⎥andF=⎡⎣⎢101010001⎤⎦⎥
两个矩阵相乘得:
EF=⎡⎣⎢1−21010001⎤⎦⎥=FE
无论是哪种顺序
EF
或
FE
,利用第一行改变了第二和第三行的值。
例5:假设
E
和上面一样,但G是第二行加到第三行上。现在改变他们的顺序,当先执行
E
,再执行G,在改变第三行之前第二行已经改变了。如果反过来,那么第三个等式不会受到第一行的影响,我们将会看到
EG
的(3,1)元素为零,而
GE
的是-2:
EF=⎡⎣⎢100011001⎤⎦⎥⎡⎣⎢1−20010001⎤⎦⎥=⎡⎣⎢1−2−2011001⎤⎦⎥butEG=⎡⎣⎢1−20011001⎤⎦⎥
因此
EG≠GE
。随便举个例子依然如此(大部分矩阵都不满足)。这里的矩阵是有意义的,
EF=FE
而
EG≠GE
是有原因的,我们有必要看看三个消元矩阵放一起会发生什么:
GEF=⎡⎣⎢1−2−1011001⎤⎦⎥andEFG=⎡⎣⎢1−2−1011001⎤⎦⎥
GFE
是消元的正确顺序。将最初的矩阵
A
变成了上三角矩阵
U,我会在下一篇文章中再次讲述。
其他矩阵
EFG
更好。对于这个顺序,
E
的-2,F的1和
G
<script type="math/tex" id="MathJax-Element-369">G</script> 都未受到影响,他们直接得出乘积,而它却是错误的消元顺序。但幸运的是,它是右边消元步骤的逆(我也会在下一篇文章里讲解)。
注意,下三角矩阵的乘积依然是下三角矩阵。