方程组
⎧⎩⎨⎪⎪x+2y+z=23x+8y+z=124y+z=2 { x + 2 y + z = 2 3 x + 8 y + z = 12 4 y + z = 2系数矩阵
⎡⎣⎢⎢130284111⎤⎦⎥⎥×⎡⎣⎢⎢xyz⎤⎦⎥⎥=⎡⎣⎢⎢2122⎤⎦⎥⎥ [ 1 2 1 3 8 1 0 4 1 ] × [ x y z ] = [ 2 12 2 ]现在只看第一个系数矩阵
⎡⎣⎢⎢130284111⎤⎦⎥⎥ [ 1 2 1 3 8 1 0 4 1 ]
[step_1 消掉x]现在进行消元的第一步,使用行2减去n倍的行1,使第二行的第一个元素为0,即使第二个方程的x系数为0,第一行的第一个元素称为第一个主元,主元不能为0,为0时可以行交换,直到不为0,如果底下的也全为0,消元法失效,非常容易的得出,n=3,行3([3,8,1])减去3倍的行1([3,6,3])得到新行2([0,2,-2]),第一步消元的结果是
⎡⎣⎢⎢1002241−21⎤⎦⎥⎥ [ 1 2 1 0 2 − 2 0 4 1 ]
[step_2]第二步,同样的方法,使第三行的x系数变为0,此时n=0,所以此时,矩阵不变
[step_3 消掉y]现在第二个方程和第三个方程的x系数均为0,剩下的2个方程只剩下y和z,进行消元的第三步,此时处于(2,2)位置的2是第二个主元,主元不能为0,为0时可以行交换,直到不为0,如果底下的也全为0,消元法失效,同样的,现在要把行2中的y的系数变为0,即消掉第二个方程里的y,此时n=2,即用[0,4,1]减去[0,4,-4],得到新行[0,0,5],即
- ⎡⎣⎢⎢1002201−25⎤⎦⎥⎥ [ 1 2 1 0 2 − 2 0 0 5 ]
此时的(3,3)位置的5是第三个主元,矩阵的行列式等于其主元之积
将右侧向量代入,即 Ax=b A x = b 将 b b 向量代入,上面的步骤只是第一个阶段,证明消元法奏效了,并且得到了3个主元,将右侧向量也代入矩阵,经过同样的算法,得到新的右侧向量,这里的矩阵称为增广矩阵:
同样的通过step_1得到的新矩阵是
- ⎡⎣⎢⎢1002241−21262⎤⎦⎥⎥ [ 1 2 1 2 0 2 − 2 6 0 4 1 2 ]
通过step_2时因为行3的一个元素本来就为0,无需运算
通过step_3得到的新矩阵是
- ⎡⎣⎢⎢1002201−2526−10⎤⎦⎥⎥ [ 1 2 1 2 0 2 − 2 6 0 0 5 − 10 ]
回代,将其写回成方程形式,此时的方程为,方程组是三角的,所以反向
- ⎧⎩⎨⎪⎪x+2y+z=22y−2z=65z=−10 { x + 2 y + z = 2 2 y − 2 z = 6 5 z = − 10
解得:
- ⎧⎩⎨⎪⎪z=−2y=1x=2 { z = − 2 y = 1 x = 2
矩阵乘法
矩阵乘以向量是矩阵列的线形组合,矩阵乘以一列[列向量,列矩阵 ]得到一列,这是列变换
- ⎡⎣⎢⎢130284111⎤⎦⎥⎥×⎡⎣⎢⎢21−2⎤⎦⎥⎥ [ 1 2 1 3 8 1 0 4 1 ] × [ 2 1 − 2 ]
即2倍的列1[向量1]加上1倍的列2[向量2],加上-2倍的列3[向量3],向量的加法运算: ,,则a=(x1,y1),b=(x2,y2),则a+b=(x1+x2,y1+y2) , , 则 a = ( x 1 , y 1 ) , b = ( x 2 , y 2 ) , 则 a + b = ( x 1 + x 2 , y 1 + y 2 )
即
- 2×⎡⎣⎢⎢130⎤⎦⎥⎥+1×⎡⎣⎢⎢284⎤⎦⎥⎥+−2×⎡⎣⎢⎢111⎤⎦⎥⎥=⎡⎣⎢⎢260⎤⎦⎥⎥+⎡⎣⎢⎢284⎤⎦⎥⎥+⎡⎣⎢⎢−2−2−2⎤⎦⎥⎥=⎡⎣⎢⎢2122⎤⎦⎥⎥ 2 × [ 1 3 0 ] + 1 × [ 2 8 4 ] + − 2 × [ 1 1 1 ] = [ 2 6 0 ] + [ 2 8 4 ] + [ − 2 − 2 − 2 ] = [ 2 12 2 ]
向量[行向量,行矩阵]乘以矩阵是矩阵行的线形组合
- [21−2]×⎡⎣⎢⎢130284111⎤⎦⎥⎥ [ 2 1 − 2 ] × [ 1 2 1 3 8 1 0 4 1 ]
即2倍的行1加上1倍的行2加上-2倍的行3,即
- 2×⎡⎣⎢⎢121⎤⎦⎥⎥+1×⎡⎣⎢⎢381⎤⎦⎥⎥+−2×⎡⎣⎢⎢041⎤⎦⎥⎥=⎡⎣⎢⎢242⎤⎦⎥⎥+⎡⎣⎢⎢381⎤⎦⎥⎥+⎡⎣⎢⎢0−8−2⎤⎦⎥⎥=⎡⎣⎢⎢541⎤⎦⎥⎥ 2 × [ 1 2 1 ] + 1 × [ 3 8 1 ] + − 2 × [ 0 4 1 ] = [ 2 4 2 ] + [ 3 8 1 ] + [ 0 − 8 − 2 ] = [ 5 4 1 ]
学会使用整个向量来思考矩阵的变换
- A∗B=⎡⎣⎢⎢100010001⎤⎦⎥⎥×⎡⎣⎢⎢130284111⎤⎦⎥⎥=⎡⎣⎢⎢130284111⎤⎦⎥⎥ A ∗ B = [ 1 0 0 0 1 0 0 0 1 ] × [ 1 2 1 3 8 1 0 4 1 ] = [ 1 2 1 3 8 1 0 4 1 ]
可以这么解读:先将 A A 矩阵分解为3个行向量,那么,第一个行向量乘以矩阵,矩阵行的线形组合,取矩阵 B B ,1倍的行一,0倍的行2,0倍的行3,向量相加,得到新矩阵的第一行,类似的,第二行是取1倍的行2,第三行是取1倍的行3,这样的矩阵 A A 称为单位矩阵
按照矩阵乘法的思路,将消元再现,第一步是要行2减去3倍的行1,第一行和第三行不变
第二步是0倍的行3,减去行2,不变
第三步是行3,减去2倍的行2,矩阵:
E(3,2)∗A=⎡⎣⎢⎢10001−2001⎤⎦⎥⎥×⎡⎣⎢⎢1002241−21⎤⎦⎥⎥=⎡⎣⎢⎢1002201−25⎤⎦⎥⎥ E ( 3 , 2 ) ∗ A = [ 1 0 0 0 1 0 0 − 2 1 ] × [ 1 2 1 0 2 − 2 0 4 1 ] = [ 1 2 1 0 2 − 2 0 0 5 ]增广矩阵,第一步
⎡⎣⎢⎢1−30010001⎤⎦⎥⎥×⎡⎣⎢⎢1302841112122⎤⎦⎥⎥=⎡⎣⎢⎢1002241−21262⎤⎦⎥⎥ [ 1 0 0 − 3 1 0 0 0 1 ] × [ 1 2 1 2 3 8 1 12 0 4 1 2 ] = [ 1 2 1 2 0 2 − 2 6 0 4 1 2 ]增广矩阵,第二步0倍的行3,减去行2,不变
增广矩阵,第三步,行3,减去2倍的行2
A∗B=⎡⎣⎢⎢10001−2001⎤⎦⎥⎥×⎡⎣⎢⎢1002241−21262⎤⎦⎥⎥=⎡⎣⎢⎢1002201−2526−10⎤⎦⎥⎥ A ∗ B = [ 1 0 0 0 1 0 0 − 2 1 ] × [ 1 2 1 2 0 2 − 2 6 0 4 1 2 ] = [ 1 2 1 2 0 2 − 2 6 0 0 5 − 10 ]回代
⎧⎩⎨⎪⎪x+2y+z=22y−2z=65z=−10 { x + 2 y + z = 2 2 y − 2 z = 6 5 z = − 10怎么检查结果里的特定元素呢?比如检查结果里的(3,2),这个结果是怎么来的呢?就是矩阵 A A 的行3([0,-2,1]),乘以矩阵的第2列([2,2,4]),点乘,相同位置的元素相乘后相加,结果为0,结果里的(3,2)值为0
那么有没有办法一步到位呢,第一步是消除第二个方程和第三个方程的 x x ,使(2,1)和(3,1)位置的元素为0,中间矩阵记为 ,第二步是消除方程3的 y y ,使(3,2)位置的元素为0,中间矩阵记为,顺序为:
E(3,2)(E(2,1)∗A) E ( 3 , 2 ) ( E ( 2 , 1 ) ∗ A )虽然矩阵的顺序是不能改变但是括号的顺序是可以改变的
(E(3,2)E(2,1))∗A ( E ( 3 , 2 ) E ( 2 , 1 ) ) ∗ A进行验证:
(E(3,2)E(2,1))∗A=⎡⎣⎢⎢1−30010001⎤⎦⎥⎥×⎡⎣⎢⎢10001−2001⎤⎦⎥⎥×⎡⎣⎢⎢1002241−21262⎤⎦⎥⎥=⎡⎣⎢⎢1−3001−2001⎤⎦⎥⎥×⎡⎣⎢⎢1002241−21262⎤⎦⎥⎥=⎡⎣⎢⎢1002201−2526−10⎤⎦⎥⎥ ( E ( 3 , 2 ) E ( 2 , 1 ) ) ∗ A = [ 1 0 0 − 3 1 0 0 0 1 ] × [ 1 0 0 0 1 0 0 − 2 1 ] × [ 1 2 1 2 0 2 − 2 6 0 4 1 2 ] = [ 1 0 0 − 3 1 0 0 − 2 1 ] × [ 1 2 1 2 0 2 − 2 6 0 4 1 2 ] = [ 1 2 1 2 0 2 − 2 6 0 0 5 − 10 ]也就是说矩阵乘法符合结合律
某个矩阵在左边用另一个矩阵做乘法,进行的是行变换,在右边用另一个矩阵做乘法,进行的是列变换
[0110][acbd]=[cadb] [ 0 1 1 0 ] [ a b c d ] = [ c d a b ][acbd][0110]=[bcda] [ a b c d ] [ 0 1 1 0 ] = [ b d c a ]
消元法
最新推荐文章于 2023-10-29 22:07:26 发布