本篇为MIT公开课——线性代数 笔记。
这节课开始我们将把重点转向如何在空间中计算出向量,由定义转向算法。
(Ax=0)的求解
求解(Ax=0) 的算法就是消元。
举例
[A=left(
egin{array}{cccc}
1 & 2 & 2 & 2 \
2 & 4 & 6 & 8 \
3 & 6 & 8 & 10 \
end{array}
ight)
]
消元
(E_{21}、E_{31}) 消元:
主元是第一行第一列的"1",结果为
[left(
egin{array}{cccc}
1 & 2 & 2 & 2 \
0 & 0 & 2 & 4 \
0 & 0 & 2 & 4 \
end{array}
ight)
]
发现主元2出现0,而且行交换无效,说明:第二列相关于第一列,所以我们不去管第二列,继续找主元2:第二行第三列 "2".
继续消元
(E_{33}) 消元,结果为 阶梯形式矩阵 (U)
[left(
egin{array}{cccc}
1 & 2 & 2 & 2 \
0 & 0 & 2 & 4 \
0 & 0 & 0 & 0 \
end{array}
ight)=U
]
消元完后,就变成求解 (Ux=0) 。
秩
这个例子中,矩阵的主元的数量只有 (2) ,该数字称为矩阵的 “秩”(rank)。 它的意义就是表示主元的个数。
主列和自由列
主列:主元所在的列。其他列称为自由列。
该例子中,主列是列 (1) 和列 (3).
自由列是 列 (2) 和列 (4) .
自由列的意思是,可以自由或任意分配数值给对应列的未知数。
我们可以对列二和列四的乘数项 (x_{2}、x_{4}) 任意取值。
然后只需要求解 (x_{1}) 和 (x_{3}).
取值:
[x=left(
egin{array}{c}
square \
1 \
square \
0 \
end{array}
ight)
]
回代和特解
[x_1+2 x_2+2 x_3+2 x_4=0 \
2 x_3+4 x_4=0
]
可以求得
[x=left(
egin{array}{c}
-2 \
1 \
0 \
0 \
end{array}
ight)
]
这是零空间的一个向量,也是(Ax=0) 的一个解。
将她乘以任意倍数,就能得到四维空间中一条无限延申的直线。
[x=cleft(
egin{array}{c}
-2 \
1 \
0 \
0 \
end{array}
ight)
]
但它不是整个零空间,因为 (x_{2}、x_{4}) 还可以取其他的值。
取值:
[x=left(
egin{array}{c}
square \
0 \
square \
1 \
end{array}
ight)
]
可以求得另一个零空间中的向量:
[x=dleft(
egin{array}{c}
2 \
0 \
-2 \
1 \
end{array}
ight)
]
这样我们就得到零空间中的两个向量,下面我们就能求出整个零空间。 (Ax=0) 的所有解。
这两个解称为特解,即特定的解。特定在于给自由变量分配特定值。给自由变量分配的是0和1. 每对自由变量都对应着一个特解。
两个特解的所有的线性组合就是整个零空间。即
[x=cleft(
egin{array}{c}
-2 \
1 \
0 \
0 \
end{array}
ight)+dleft(
egin{array}{c}
2 \
0 \
-2 \
1 \
end{array}
ight)
]
总结
对于(m*n) 矩阵,(n) 变量,若 秩 (r=2),主变量就有 r 个,自由变量 就有 (n-r) 。
(r) 个主变量,表示只有 (r) 个方程起作用。
剩下的 (n-r) 个自由变量可以任意赋值。
简化行阶梯形式
简化行阶梯形式我们称为 (R).她是对阶梯形式矩阵 (U) 的简化。
[left(
egin{array}{cccc}
1 & 2 & 2 & 2 \
0 & 0 & 2 & 4 \
0 & 0 & 0 & 0 \
end{array}
ight)=U
]
通过消元我们发现,行三全部是0的出现,是因为,行三是行一和行二的线性组合。消元会把它剔除。
简化的方法就是"向上消元",让主元上方都是0.
在主元二向上消元
[left(
egin{array}{cccc}
1 & 2 & 2 & 2 \
0 & 0 & 2 & 4 \
0 & 0 & 0 & 0 \
end{array}
ight)
ightarrow left(
egin{array}{cccc}
1 & 2 & 0 & -2 \
0 & 0 & 2 & 4 \
0 & 0 & 0 & 0 \
end{array}
ight)
]
将结果再除以主元"2",解不变。
因为(2 x_3+4 x_4=0)和 (x_3+2 x_4=0) 的解是一样的,除以某个倍数解不会变。所以我们可以再次化简,记为矩阵 (R):
[left(
egin{array}{cccc}
1 & 2 & 0 & -2 \
0 & 0 & 1 & 2 \
0 & 0 & 0 & 0 \
end{array}
ight)=R
]
现在所有主元都是"1"。这就是矩阵 (A) 的简化行阶梯形式。她可以通过matlab的 rref 函数得出来。
这样我们就经过 ( ext{Ax}=0
ightarrow ext{Ux}=0
ightarrow ext{Rx}=0) 的过程。
我们重新进行回代,通过 (R) 也可以求解两个特解。
[x_1+2 x_2-2 x_4=0\
x_3+2 x_4=0\
]
解没有改变。
设想:如果我们把 (R) 的主列和自由列各放在一边,即列交换:
[left(
egin{array}{cccc}
1 & 0 & 2 & -2 \
0 & 1 & 0 & 2 \
0 & 0 & 0 & 0 \
end{array}
ight)
]
左边两列是主列,右边两列就是自由列。
第三行因为是前两行线性组合,不管她。
左边得到一个单位矩阵 (I) ,右边自由部分记为 (F) .
再看零空间:
[x=cleft(
egin{array}{c}
-2 \
1 \
0 \
0 \
end{array}
ight)+dleft(
egin{array}{c}
2 \
0 \
-2 \
1 \
end{array}
ight)
]
由于系数矩阵进行列交换,我们需要将她的两个特解行交换。
[x=cleft(
egin{array}{c}
-2 \
0 \
1 \
0 \
end{array}
ight)+dleft(
egin{array}{c}
2 \
-2 \
0 \
1 \
end{array}
ight)
]
会发现:
(x_{1}、x_{3}) 的两个特解上半部分正好是自由部分的相反数。
因为 (F) 回代后,需要移动到等式的另一侧,正好就是 (x_{1}、x_{3}) 的两个特解。
零空间矩阵
假设方程组已经是 (rref) 形式,即
[R=left(
egin{array}{cc}
I & F \
0 & 0 \
end{array}
ight)
]
(I) 为 (r*r) 矩阵,于是有 (r) 个主行,(n-r) 个自由列, 我们要解 (Rx=0) .
我们可以构建一个 “零空间矩阵”,记为 (N),她的各列由特解组成。
简化行阶梯形式的目的在于,她可以一次性给出特解,
什么 (N) 可以满足(RN=0) ,我们将 (I) 放在主变量位置,(-F) 放在自由变量位置,通过乘法法则,我们就能知道满足。
[N=left(
egin{array}{c}
-F \
I \
end{array}
ight)
]
总结举例
对 (Ax=0) 整个算法举例
[A=left(
egin{array}{ccc}
1 & 2 & 3 \
2 & 4 & 6 \
2 & 6 & 8 \
2 & 8 & 10 \
end{array}
ight)
]
他有两个主元,因为第三列是前两列的线性组合。在消元过程中就会体现出哪些是主元行/列,并把相关项剔除。
第一步:向下消元
(E_{21}、E_{31}、E_{41})消元
[left(
egin{array}{ccc}
1 & 2 & 3 \
2 & 4 & 6 \
2 & 6 & 8 \
2 & 8 & 10 \
end{array}
ight)
ightarrow left(
egin{array}{ccc}
1 & 2 & 3 \
0 & 0 & 0 \
0 & 2 & 2 \
0 & 4 & 4 \
end{array}
ight)
]
主元2为“0”,发现可以行交换解决:
[left(
egin{array}{ccc}
1 & 2 & 3 \
0 & 0 & 0 \
0 & 2 & 2 \
0 & 4 & 4 \
end{array}
ight)
ightarrow left(
egin{array}{ccc}
1 & 2 & 3 \
0 & 2 & 2 \
0 & 0 & 0 \
0 & 4 & 4 \
end{array}
ight)
]
主元2为"2",继续向下消元,(E_{42}):
[left(
egin{array}{ccc}
1 & 2 & 3 \
0 & 2 & 2 \
0 & 0 & 0 \
0 & 4 & 4 \
end{array}
ight)
ightarrow left(
egin{array}{ccc}
1 & 2 & 3 \
0 & 2 & 2 \
0 & 0 & 0 \
0 & 0 & 0 \
end{array}
ight)=U
]
第二步:特解
秩为2.两个主变量 (x_{1}、x_{2})和一个自由变量 (x_{3})。
为自由变量赋上方便计算的数值,将(x_{3}) 取值 为1,因为取值为0求主变量,全部变量都是0,没有意义。
[x=left(
egin{array}{c}
square \
square \
1 \
end{array}
ight)
]
回代:
[x_{1}+2x_{2}+3x_{3}=0\
2x_{2}+2x_{3}=0
]
代入,可以求得特解
[x=left(
egin{array}{c}
-1 \
-1 \
1 \
end{array}
ight)
]
第三步:零空间
将特解乘以某个倍数,即可得到整个零空间:
[x=cleft(
egin{array}{c}
-1 \
-1 \
1 \
end{array}
ight)
]
整个零空间是一条直线。
第四步:简化矩阵(R)
从最后面主元开始向上消元:
[left(
egin{array}{ccc}
1 & 2 & 3 \
0 & 2 & 2 \
0 & 0 & 0 \
0 & 0 & 0 \
end{array}
ight)
ightarrow left(
egin{array}{ccc}
1 & 0 & 1 \
0 & 2 & 2 \
0 & 0 & 0 \
0 & 0 & 0 \
end{array}
ight)
]
行二可以除以主元2继续化简:
[left(
egin{array}{ccc}
1 & 0 & 1 \
0 & 2 & 2 \
0 & 0 & 0 \
0 & 0 & 0 \
end{array}
ight)
ightarrow left(
egin{array}{ccc}
1 & 0 & 1 \
0 & 1 & 1 \
0 & 0 & 0 \
0 & 0 & 0 \
end{array}
ight)=R
]
(R) 中单位阵 (I=left(
egin{array}{cc}
1 & 0 \
0 & 1 \
end{array}
ight)) ,自由部分 (F=left(
egin{array}{c}
1 \
1 \
end{array}
ight)) .
可以看到 (x) 的特解也包含
(I=left(
egin{array}{c}
1 \
end{array}
ight)),
(-F=left(
egin{array}{c}
-1 \
-1 \
end{array}
ight))
零空间矩阵 (N) 就是
[N=left(
egin{array}{c}
-F \
I \
end{array}
ight)
]
她是将所有特解作为列的矩阵。