高斯消去法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高斯消去法
一.题目
应用高斯消去法求解下列方程组的解
⎪⎩
⎪
⎨⎧=+--=-+-=-+2.453.82102.7210321321321x x x x x x x x x
二.引言
高斯消去法是约当消去法的一种改进,它比约当消去法计算简单,可以计算方程组的精确解,由于较约当消去法增加了回带过程,故算法结构比较复杂,但算法减少了计算量(约节省了50%的计算量)。
要求方程组对角占优。
三.算法
(1)消元过程
就一般形式的方程组
∑==n
j i
j
ij
b x a 1 i=1,2,3,
·····n 加工成方程组 ⎪⎩⎪
⎨⎧===+∑∑==n j i j ij n
j j ij n i b x a b x a x 2
21
1,.......3,2,
我们保留第一个方程
)1(12
)1(1b x a x j n
j ij =+∑=
则剩下的
)
1(2
)
1(i
n
j j
ij
b
x a =∑= i=2,3,4.····
是关于变元x j 的n-1阶方程组(较原方程组少了一阶),可以进一步对他实施消
元手续,使之进一步变成 ⎪⎩⎪
⎨⎧==+∑∑==n j i j j n
j j b x a b a x 3
)2()2(23)
2(2
)2(22 i=3,4.······n
如此进行下去,这样经过k-1步消元后,依次得出k-1个方程
)(2
)(i i j n
j i ij i b x a x =+∑= i=1,2,3,···k-1
和关于变元x j 的n-k+1阶方程组 )
1()1(-=-=∑k i
n
k
j j k ij b x a
i=k ,
k+1,·····n
第k 步进一步将方程组加工成
⎪⎪⎩⎪⎪
⎨⎧==+∑∑+=+=n
k j k i j k ij n
k j k k j k b x a b a x 1
)()(1)(2)(2 i=k+1,k+2,………n 这里计算公式为
)
1()1()(/--=k kk k kj k kj a a a
)
1()1()(/-+=k kk k k k k a b b j=k+1,k+2,·····n
而 )
()1()1()(.k kj
k ik k ij k ij a a a a ---=,
)()
1()1()(.k k k ik k i k i b a b b ---= i ,j=k+1,k+2·
····n 上述消元手续做了n 步以后,方程组被加工成下列形式
)(1
)(i i j n
i j i ij i b x a x =+∑+= i=1,2,3,···n
(2)回代过程
方程组 ⎪⎪
⎩⎪⎪⎨⎧==+=+++=+++-----)
()
1(1)1(11)2(2
)2(23)2(232)
1(1)1(13)1(132)1(121..............n n
n n n n n n n n n n n b x b x a x b x a x a x b x a x a x a x
的解很方便,自下而上逐步回带得 ∑+=-
=n
i j i ij
i i
i a
b x 1
)()( i=n,n-1, (1)
综上所述,高斯消去法的计算过程是:先计算系数)
(k ij a ,)
(k i b ,然后再计算
i x 。
流程图如下所示:
四.程序及运行结果1.程序
program gaosixiaoqufa
implicit none
integer::k,i,j
integer,parameter::n=3
real::a(n,n),b(n)
data((a(i,j),i=1,3),j=1,3)/10,-1,-1,-1,10,-1,-2,-2,5/
data(b(i),i=1,3)/7.2,8.3,4.2/
do k=1,n
do j=k+1,n
a(k,j)=a(k,j)/a(k,k)
end do
b(k)=b(k)/a(k,k)
do i=k+1,n
do j=k+1,n
a(i,j)=a(i,j)-a(i,k)*a(k,j)
end do
end do
do i=k+1,n
b(i)=b(i)-a(i,k)*b(k)
end do
end do
do i=n-1,1,-1
do j=i+1,n
b(i)=b(i)-a(i,j)*b(j)
end do
end do
write(*,*) b(1),b(2),b(3)
stop
End
2.运行结果
1.100000 1.200000 1.300000
五.算法评价
在高斯消去法中,我们要保证第k步的系数a kk 不能为0.这就要求方程组要对角占优阵。
另外解一般方程组时,如果要用高斯消去法时,即使a kk的系数不为零,但如果绝对值太小,舍入误差的影响也会严重的的损失精度,因此在计算过程中要选主元素来保证a kk不为零。
在高斯消去法中,我们得到了方程组的精确解,该算法算法减少了计算次数,
节省了内存,也是一种比较好的算法。