首页 » 机器学习 » 线性代数--消元

线性代数--消元

 

Eliminate

小学老师教我们解方程,受限就是把两个未知数变换成一个未知数,或者说用另一个未知数来表示当前未知数。

x+y=1xy=0x+y=1x−y=0

我们会把第一个方程变形,然后和第一个方程做减法或者加法计算

xy=1..(1temp)−x−y=−1……..(1temp)

左右同时和(2)相加

2y=1(2)−2y=−1………(2)

当这步完成时,第一步方程没变,我们减去的变形版本是个中间版本,所以方程组:

x+y=10x+y=12x+y=10x+y=12

消元的顺序很多,这个只是我的习惯,不过和线性代数书上刚好差不多,经过消元,我们得到了Upper Triangular Matrix A=[1011]A=[1101]

Upper Triangular Matrix

只有对角线,及对角线上方数字不为0,其他部分都是0的矩阵

⎛⎝⎜⎜⎜⎜⎜a11a12a22a1na2nann⎞⎠⎟⎟⎟⎟⎟(a11a12⋯a1na22⋯a2n⋱⋮ann)

没错,a不能全为0
消元的最后终结果就是上一篇中的 Ax=bAx=b 变成了

Ux=cUx=c

Back Substitution

从最后一行开始,把未知数一个个回带解出来

Pivot

消元过程中,我们要看列的未知数,和未知数的系数,策略就是首先干掉第一行一下的所有的第一个未知数,通过对第一行进行缩放,来得到中间(temp)表达式,使得第一行下面的所有行的第一个未知数全部消失,然后对第二行做类似的操作,消掉第二行以下的所有第二个未知数。最后是系数矩阵白城上三角矩阵。
那么问题来了,有的时候,你消元到第二行的时候,第二个未知数在刚才的消元过程中牺牲了,顺带也给干掉了,很不幸,我们这时候为了得到标准的上三角矩阵,肯定要用其他行(第一行不行)的方程和第二行的方程进行置换,来保证第二个未知数存在。

在消元过程中,系数矩阵每行中第一个不为0的数字叫主元(pivot)
消元后,主元在主对角线上。
eg:
上面upper triangular matrix的对角线元素就是主元。

注意:主元不等于零,如果一行全是0,那么没有主元。
消元过程中当前行乘以某个系数得到temp过程中,系数

lij=entrytoeliminateinrowipivotinrowjlij=entrytoeliminateinrowipivotinrowj

Pivot in Row j 就是当前的主元

如果主元个数小于未知数个数,又会引出一个新的概念,singular后面再说

Eliminate Faile

消元失败,我们记得解方程会有两种特殊情况,一种是无数个解,一种是没有解。
比如你有三个方程,两个未知数,就很有可能没有解
如果你有一个方程,两个未知数,肯定有英菲尼迪个解
但是这个描述是小学的,根据back substitution的过程,我们确定,方程解的个数和pivot直接相关:

总结

消元那步看不懂,就想象着把矩阵变成三角的,然后按照这个思路自己写个方程试试,过程中感受下主元的威力,主元是个非常重要的概念,用处特别多。。。

原文链接:线性代数--消元,转载请注明来源!

0