< Return to Video

矩阵求逆(第3部分)

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

使用“高斯-若当消元法”来求一个3×3矩阵的逆矩阵

more » « less
Video Language:
English
Duration:
13:36

Chinese, Simplified subtitles

Revisions