线性方程组的矩阵求解算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
线性方程组的矩阵求解算法
摘要 线性方程组的矩阵求解算法,只需在约当消元法的基础上,再对方程组的
增广矩阵的行最简形进行行(列)删除和增加行,交换行等运算即可得到方程组的解,并且这种方法既可求解有唯一解的方程组.因而算法简单,易于实现.
关键词 线性方程组;解向量;解法;约当消元法
1 矩阵求解算法
设有线性方程组m n A X b ⨯=,其增广矩阵())(1,m n A A b ⨯+=,算法的步骤如下: 第一步:利用约当消元法,把增广矩阵A 化为行最简形,设行最简形为()1m n B ⨯+.若()t i (),r A r =则方程组无解;否则设(),r A R =并执行以下步骤;
第二步:删除B 中的所有零行和每一行第一个非零元素(这个非零元素一定是1)所在的列,得到矩阵()1,r n r D ⨯-+并记录每行的第一个非零元所在的列标,放在一维数组()1,
,t r 中,如第i 行的第一个非零元在第j 列,则()t i j =;
第三步:构造矩阵()
1m n r D H F ⨯-+⎛⎫
= ⎪
⎝⎭,其中 ()()
1100001
0000
1
0n r n r F -⨯-+-⎛⎫
⎪-
⎪
= ⎪
⎪
-⎝
⎭
第四步:对矩阵H 中的行作交换运算:把H 中的第i 行(,1,1,i r r =-即从第r 行开始直到第一行)依次与其下一行交换,使之成为第()t i 行,交换运算结果后的矩阵记为G ,则G 中的前n r -个n 维列向量即为方程组的一个基础解系,最后一列向量即为方程组的一个特解; 第五步:写出方程组的通解.
2 算法证明
先证一个特殊情形,增广矩阵A 的行最简形矩阵B 的左上角为一r 阶的单位矩阵,即第i 行的第一个非零元的列标为i ,即()()1t i i i r =≤≤,所以设B 为
1,1112,122,110001000100
0r n r n r r rn r c c d c c d B c c d +++⎛⎫ ⎪ ⎪
⎪=
⎪ ⎪ ⎪ ⎪ ⎪⎝
⎭
则
1,1
112,122,1r n r n r r rn
r c c d c c d D c c d +++⎛⎫ ⎪ ⎪
= ⎪ ⎪ ⎪⎝⎭
由上述算法可得H 为
1,11,1
112,12,222,1,210000
1000010r r n
r r n r r r r rn r c c c d c c c d c c c d H ++++++⎛⎫
⎪
⎪
⎪
⎪
⎪
=
⎪
-
⎪- ⎪
⎪ ⎪
⎪-⎝
⎭
由于()()1t i i i r =≤≤,故从H 得到G 时,H 中的行不需交换位置,即.G H = 那么矩阵B 的增广矩阵的线性方程组为
111,111,
222,112,1,.r r n n r r n n
r r r r rn n x d c x c x x d c x c x x d c c x +++++=--⎧⎪=--⎪⎨⎪⎪=---⎩
令
1,12,11,1100r r c c cr r α++⎛⎫ ⎪ ⎪ ⎪ ⎪+ ⎪= ⎪- ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭ , 1,22,22,2011r r c c cr r α++⎛⎫ ⎪ ⎪ ⎪ ⎪+ ⎪= ⎪ ⎪
- ⎪ ⎪ ⎪ ⎪-⎝⎭
, ,12,001n n rn n r
c c c α-⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪= ⎪ ⎪ ⎪ ⎪ ⎪ ⎪-⎝⎭12000r
d d d η⎛⎫
⎪ ⎪ ⎪ ⎪ ⎪= ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭
可以验证1,2,n r ααα-是方程组(1)所对应的齐次线性方程组的解,η是方程组(1)
的特解,又12,,n r ααα-的后n r -个分量构成的向量组10
0-⎛⎫ ⎪ ⎪ ⎪ ⎪⎝⎭,0010
,
,.01⎛⎫⎛⎫ ⎪
⎪- ⎪ ⎪ ⎪ ⎪ ⎪ ⎪-⎝⎭
⎝⎭
线性无关,把它扩充成维向量组后也线性无关,所以12,,,n r ααα-线性无关,又因为
()r A r =,所以方程组(1)的基础解系中有()n r A n r -=-个向量,因此
12,,,n r ααα-即为方程组(1)的基础解系,特殊情形得证.
对于行最简形矩阵B 为一般情形时,可以通过若干次列交换把它变形为上述特殊情形,但是,列交换将会导致最后结果中对应未知数的次序混乱,即在进行第
i 列与第j 列的交换后,最后结果中i x 与j x 次序也就被交换了,因此,在这过程中,必须记住所进行的一切列交换,以便在最后结果中恢复,但若使用本矩阵求解算法,则可避免上述麻烦,为了叙述方便,还是只证一种特殊情形.
设 121,2112,222,2100001
00
010*******
0r n r n r r rn r c c c d c c d B c c d +++⎛⎫ ⎪ ⎪ ⎪
⎪= ⎪ ⎪ ⎪ ⎪ ⎪⎝
⎭
即()()()11,12,t t i i i r ==+≤≤则
12
1,2112,222,2
0r n r n r r rn
r c c c d c c d D c c d +++⎛⎫ ⎪
⎪
= ⎪ ⎪ ⎪⎝
⎭
,