- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
约当消去法和高斯消去法的应用
一、 题目:
求解方程组:
10x一x一2x=7.2
<-x+10x-2x=8.3
一x—x+5x=4.2
I1 2 3
误差分析范围为e=0.0001.
二、 引言
线性方程组的解法大致分为直接法与迭代法两大类。迭代法的突出优点是算法简单,编程容易。但迭代法的缺点是它要求迭代过程具有收敛性,发散的迭代过程是没有实用价值的。
前面我们通过对迭代法的学习,已经大致掌握了有关迭代法的基本思想,此处我们将学习解决线性方程组的另一种方法一一直接法
这种算法思想简单并且容易掌握,结果精确,这虽然是一种古老的算法,但用在现代计算机上仍十分有效,所以这依然是一种十分有效的解决线性方程组的一种方法,下面我们一起来学习这种算法!
三、 算法
直接法中我们接触到的有约当消去法和高斯消去法,下面我们将逐一介绍两种算法:
1、 约当消去法:
考察一般形式的线性方程组
^ax=b,i=1,2,3,…,n (1)
j=1
第一步,先把方程(1)中的第一个方程的七的系数化为1,并从其
余的方程中消去七,得到方程(1)1
第二步,先把方程中的第二个方程的X2的系数化为1,并从其余的方
程中消去x2,得到方程(1)2
第K步,先把方程中的第k个方程的x*的系数化为1,并从其的
方程中消去xk,得到方程(1)K
第n步,先把方程中的第n个方程的xn系数化为1,并从其与方程中消去xn。这样经过n步的消去就可以得到原方程组的解。
2、高斯消去法
高斯消去法包括两个过程:消去过程和回代过程
(1)消去过程:
第一步,把方程中的第一个方程的x(1)的系数化为1,并从
其余方程中的x1消去,得到新的方程(1)1
第二步,把方程(1)1中的第二个方程的x(2)的系数化为1,
从第三个方程开始一直到第n个方程中消去x(2)得到新的方程
(1)2
第k步,把方程(1)k-1中的第k个方程中的x(k)的系数化为
1,并且从k+1个方程开始一直到第n个方程中消去x(k),得到
新的方程(1)k
第n步,把方程(1)n-1中的第n个方程的x(n)的系数化为1,
得到新的方程(1)n这样,通过n步转化就可以得到x(n)的值
(2)回代过程:
由(1)n方程得到x(n)的值,再把x(n)带回到方程(1)n-1中
得到x(n-2),按此方式,一次将其回代,就可以得到所要求
的方程的解
这就是高斯消去法
四、程序代码及数据
1、约当消去法
Programfjs3
implicitnone
integer::k,i,j
integer,parameter::m=3,n=3
real::a(m,n)=(/10,-1,-1,-1,10,-1,-2,-2,5/)
real::b(m)=(/7.2,8.3,4.2/)
dok=1,n
doj=k+1,n
a(k,j)=a(k,j)/a(k,k)
enddo
b(k)=b(k)/a(k,k)
doi=1,n
if(i/=k)then
doj=k+1,n
a(i,j)=a(i,j)-a(i,k)*a(k,j)
enddo
b(i)=b(i)-a(i,k)*b(k)
endif
enddo
enddo
write(*,*)b(1),b(2),b(3)
stop
end
1.100000 1.200000 1.300000
Pressanykeytocontinue
2、高斯消去法
programfjs3
implicitnone
integer::k,i,j
integer,parameter::m=3,n=3
real::a(m,n)=(/10,-1,-1,-1,10,-1,-2,-2,5/)
real::b(m)=(/7.2,8.3,4.2/)
dok=1,n
doj=k+1,n
a(k,j)=a(k,j)/a(k,k)enddo
b(k)=b(k)/a(k,k)doi=k+1,n
doj=k+1,n
a(i,j)=a(i,j)-a(i,k)*a(k,j)
enddo
enddo
doi=k+1,n
b(i)=b(i)-a(i,k)*b(k)
enddo
enddo
doi=n-1,1,-1
doj=i+1,n
b(i)=b(i)-a(i,j)*b(j)
enddo
enddo
write(*,*)b(1),b(2),b(3)
stop
End
1.100000 1.200000 1.300000
Pressanykeytocontinue
五、算法评估
直接算法:优点是工作量小精度高
缺点是程序复杂对于高阶矩阵,受计算机容量限制,适合
与中小型方程组
所以对线性方程组来说
文档评论(0)