我下面来讲另一种求3×3矩阵的逆矩阵的方法
我更喜欢这种方法,觉得更有趣些
而且不那么容易犯错
但是,如果我没记错的话
《代数2》好像不教这个内容
这也是为什么我先讲前面那个方法
我们先来过一遍新方法
以后的视频里,我会解释这个方法的道理
知其所以然是很重要的
但在线性代数里,有那么几个知识点
最好先掌握怎么操作
我认为这是其中之一
之后我们再来讲为什么
因为,“怎么操作”是个很机械的过程
只涉及一些基础的运算
而“为什么”则更加深入
所以我把它留到以后来讲
通常,当你掌握了“怎么操作”时
也就有信心进行更深入的思考了
言归正传,我们来看原矩阵
上段视频里的原矩阵是多少来着?
它是1, 0, 1, 0, 2, 1, 1, 1, 1
要求它的逆矩阵
我们介绍新的求逆方法,名叫:
高斯-若当消元法
整个过程看起来就像是魔法一样
以后的视频里会有更详细的解释
我们先来“扩增”(augment)这个矩阵
什么叫“扩增”(augment)?
就是给它加上些东西(这里就是在原函数右边写上单位矩阵)
我习惯画一条分隔线;有些人不画,也是可以的
在分隔线的另一边,我写上同样大小的单位矩阵
这里是3×3矩阵,所以写上3×3的单位矩阵
即1, 0, 0, 0, 1, 0, 0, 0, 1
好了,接下来做什么呢?
我会进行一系列“基本行运算”(elementary row operation)
我呆会儿再教你什么叫做“基本行运算”
但是无论我对左边矩阵的做什么操作
我都要对右边的相应行做同样的运算
我的目标是:对左边矩阵进行一系列的运算
当然也对右边矩阵进行同样的操作
使得左边的矩阵,最终变成单位矩阵
而当左边变成单位矩阵的时候
右边的矩阵,就会变成左边原矩阵的逆矩阵
当左边变成单位矩阵的时候
我们会管它叫“简式行阶梯形”(reduced row echelon form)
后面会有专门的视频来讲这个
线性代数里有很多术语和定义
但它们实际上都是很简单的概念
先不扯远了,我们动手计算
算完后你们就会更清楚些
至少会清楚计算过程
虽然可能还无法理解道理何在
我说过我们要进行一系列运算
所以首先,我们先要弄明白:
什么样的运算是合法的?
也就是“基本行运算”
合法的运算包括下面这些:
我可以拿某一行,乘上一个倍数
这是可以的
我可以交换任意两行的位置
当然,如果我在左边交换第一和第二行
我也必须在右边做同样的操作
我还可以拿某一行加上或减去另一行
比如说,我可以拿第三行,加上第二行
所以第三行的数字就变成它们的和
等下你们就明白这是什么意思了
而且,这些运算可以组合起来
比如说,拿第二行乘以负1
然后把结果加到第三行上
你可能觉得这挺像在解线性方程组
确实如此,因为矩阵就是一个
用来表示方程组的好方法
这一点我以后会给你们解释
回到主题,我们来做点“基本行运算”
把左边这个矩阵转化成“简式行阶梯形”
其实也就是说“我们把它化成单位矩阵”
我们的目标也就是:
得让这一条对角线上全变成1
剩下的都变成0
我们来看看有没有什么简便的方法
我们把新矩阵写在下面
第一步,我要把左下角的1化成0
看起来很简单
前两行不变,照写下来
1, 0, 1
然后是分隔线
1, 0, 0
第二行也不做任何操作
0, 2, 1
0, 1, 0
我现在的目标,是要拿这一行
把它的第一个数字1,变成0写在这里
这样一来,我们就朝单位矩阵前进了一步
怎么让这里得到0?
我可以这么做:拿上面的第三行减去第一行
然后把结果写在新的第三行的位置上
第三行减去第一行,结果是什么?
1减去1,得0
1减去0,得1
1减去1,得0
我在左边做了一次减法
也必须在右边做相同的操作
也就是拿第三行减去第一行
即,0减去1,得负1
0减去0,得0
1减去0,得1
很好
接下来怎么办?
现在左边的第三行,两边是0,中间是1
很像单位矩阵里的第二行
那何不直接交换这两行呢?
直接交换第二行和第三行
我们把它写下来
交换第二行和第三行
第一行不变,还是1, 0, 1
右边的第一行也是一样
现在我们交换第二行和第三行
所以第二行变成:0, 1, 0
右边也同样交换
变成:负1, 0, 1
直接交换两行的位置就行了
所以第三行现在就变成了前面的第二行
0, 2, 1
这边是0, 1, 0
好的
接下来又该怎么办?
如果第三行的这个2变成0就好了
这样一来等于朝单位矩阵前进了一大步
我怎么才能把它变成0呢?
拿第三行减去2倍的第二行怎么样?
2倍的第二行,中间的数就是2
从第三行中减去它,中间就得0
就这么办
第一行,很幸运地,一直不用动
我们照写下来
1, 0, 1, 1, 0, 0
第二行这回也不需要变
右边是:负1, 0, 1
我刚才说要怎么做来着?
我要从第三行里减去“2倍的第二行”
就是:0,减去“2乘以0”,得0
2,减去“2乘以1”,就是0
1,减去“2乘以0”,得1
0,减去“2乘以负1”,就是0减去负2,得正2
1,减去“2乘以0”,还是等于1
0,减去“2乘以1”,得到负2
我都算对了吗?
我来检查下
0减去“2乘以负1”,“2乘以负1”等于负2
0减去负2,所以是正2
好的,快完成了
左边看起来已经很像单位矩阵了
或者说“简式行阶梯形”
唯一不同的是右上角的1
所以我们终于要对第一行下手了
我应该怎么做?
我从第一行里减去第三行怎么样?
因为右上角的1减去右下角的1,就得0
我们把它写下来
从第一行里减去第三行
1减去0,得1
0减去0,得0
1减去1,得0
这就是我们想要的
然后是:1减去2,得负1
0减去1,得负1
0减去负2,就得到正2
其余的两行不变
0, 1, 0, 负1, 0, 1
下面是:0, 0, 1, 2, 1, 负2
大功告成
我们对左边的矩阵做了一系列运算
也对右边的矩阵进行同样的操作
左边的变成了单位矩阵,或者叫“简式行阶梯形”
所用的方法叫“高斯-若当消元法”
那么右边的这是什么?
它就是左边原矩阵的逆矩阵
原矩阵和它相乘,就等于单元矩阵
如果原矩阵叫A的话
那么这个就是“A逆”
就这么简单
你们可以看到,这只花了我上次所用时间的一半
而且计算更容易
不用求伴随矩阵、余因子、行列式什么的
为了帮助你们理解,我稍微讲讲这个方法的原理
我对左边这个矩阵所做的每一步操作
都可以视为是对它做了一次矩阵乘法
比如,要从原矩阵,到下面这个矩阵
就好像说,存在某个矩阵
乘以它的效果,就等于做了这第一步的操作
而第二步操作,相当于乘上了另一个矩阵
所以实质上,我们相当于拿原矩阵
乘上一系列的矩阵,最终得到单位矩阵
这一系列矩阵,叫做“消元矩阵”(elinimation matrix)
我们把它们相乘,就得到原矩阵的逆矩阵
这是什么意思呢?
比如,我们有原矩阵A
从A到下面这个矩阵,相当于乘上了一个消元矩阵
要是你们觉得一头雾水,可以完全忽略
但它也可能会有所启发
因为第一步操作消去了元素(3, 1)(第三行第一列)
所以我们管这一步对应的消元矩阵叫做E(3,1)
而第二步操作,相当于乘上另一个矩阵
以后的视频里,会有更详细的解释
我会教你们如何构造这些消元矩阵
这里的第二步操作,是两行元素交换位置
我们姑且管它对应的矩阵,叫做“交换矩阵”S
乘上它,效果是交换第二行和第三行,所以写成S(2, 3)
第三步也相当于一次乘法
我们消去了什么?消去了第三行第二列
所以其对应的消元矩阵叫做E(3, 2)
最后一步,也相当于乘上了一个消元矩阵
消去了右上角的元素,也就是第一行第三列
所以它叫做E(1, 3)
你们现在不用搞清楚这些矩阵长什么样
后面我会教你们如何去构建它们
我现在只是想让你们提前确信:
这里的每一步操作,都可以通过“乘上一个矩阵”来完成
而我们知道,乘上这些矩阵之后
原矩阵A就变成了单位矩阵I
也就是这里
所以这几个矩阵的乘积
如果我们把它们相乘的话
肯定就等于A的逆矩阵
这些消元、交换矩阵乘起来,肯定等于A的逆矩阵
因为拿它们乘上A,结果等于单位矩阵
那么,这会给我们什么结论呢?
如果这些矩阵相乘等于逆矩阵
那么拿单位矩阵乘上它们
也就是:第一步乘以E(3, 1)
第二步乘以S(2, 3)
第三步乘以E(3, 2)
如此往复
当你把这些步骤合在一起
实际上就相当于拿逆矩阵乘以单位矩阵,明白吗?
我不希望把你弄糊涂
你明白我所说的当然好,不明白也没关系
但是,如果你着眼于大效果的话
这些步骤的效果,实际上相当于:
把这个扩增矩阵的左右两边都乘上逆矩阵
左边的乘上逆矩阵,得到单位矩阵
而右边,单位矩阵乘上逆矩阵,当然就得到逆矩阵
话说回来,我不想把你弄糊涂
只是希望能给你一点点解释
以后我会用更具体的例子来解释它的原理
目前你只要知道有这么个简便的方法
不用去算伴随、余因子、子式矩阵、行列式之类的
好的,那我们下段视频再见