线性方程组的矩阵求解算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 +++⎛⎫ ⎪

= ⎪ ⎪ ⎪⎝

,

相关文档
最新文档