c语言编程求解线性方程组论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数值计算小报告题目:线性方程组求解方法比较
姓名和丽
专业软件工程
班级11级软件(2)班
完成日期:2013 年5月18日
摘要
目前在许多实际应用领域,诸如航空、造船以及其它结构工程中,常遇到求解大型线性代数方程组的问题。本文根据线性代数方程组的雅可比迭代法、LU分解法及高斯列主元消去法三种解法进行了比较,用以方便在实际生活应用中更好的作出选择。在第二章中本文详细的介绍了线性代数方程组的三种解法的理论知识与证明过程。为了更加清晰的展现三种方法的不同点以及其各自的优越性,本文在第三章中给出了实例,通过实例的计算与程序的实现,再结合三种方法的优缺点进行了比较。
关键字:线性代数方程组、迭代法、LU分解法、高斯列主元消去法、不同点、比较
目录
第一章绪论 (4)
第二章求解线性方程组的基本理论
2.1 迭代法 (5)
2.2 直接三角分解法 (6)
2.3 高斯消去法 (7)
第三章三种算法求解方程组实例
3.1 迭代法 (8)
3.2 直接三角分解法 (10)
3.3 高斯列主元消去法 (14)
3.4 三种方法的优缺点比较 (16)
参考文献 (17)
第一章绪论
计算数学是数学学科的一大分支,它研究如何借助于计算机求解各类数值问题。应用计算机求解各类数值问题需要经历以下几个主要过程:1、实际问题2、数学模型3、计算方法4、算法设计5、计算求解
目前已有的数学软件可以帮助我们实现上机计算,基本上已经将数值分析的主要内容设计成简单的函数,只要调用这些函数进行运算便可得到数值结果。
数值分析的内通包括线性代数方程组求解、非线性代数方程(组)求解、矩阵的特征值与特征值向量的计算、函数插值、函数逼近、数值积分与数值微分以及微分方程数值解法。
线性方程组的求解从理论上可分为两类:直接法和迭代法。直接法是不考虑计算过程中的舍入误差,经过有限次的运算得到方程组精确解的方法,常见的方法是高斯顺序消去法、高斯列主元消去法和矩阵的LU分解法。迭代法是采用某种极限过程,用线性代数方程组的近似解逐步逼近精确解的方法。迭代法中常见的方法有简单迭代法、J-迭代法、GS-迭代法和SOR-迭代法。
本文主要是分析高斯列主元消去法、矩阵的LU分解法和简单迭代法理论上的异同,并用C语言程序通过具体实例进行了分析比较。
本文将线性方程组的求解过程用计算机实现,本文的编写由以下几个特点:
1、对于难点问题从具体模型引入,淡化抽象的概念与定理,通俗易通;
2、对于具体模型本文给出了多种解题的思想及方法;
3、对问题进行简洁易懂的理论证明,突出了线性代数的理论和基本思想,使数学方法更加利于理解掌握。
4、简要分析了算法的计算效果、稳定性、收敛效果、计算精度以及优劣性。
第1章 求解线性方程组的基本理论
1.1 迭代法
迭代法的基本思想:是将线性方程组转化为便于迭代的等价方程组,对任选一组初始值错
误!未找到引用源。(i=1,2…n ),按某种计算规则,不断地对所得到的值进行修正,最终获得
满足精度要求的方程组的近似解。
对于线性方程组Ax=b 其中,A 为非奇异矩阵。
将A 分裂为A=M-N ,其中,M 为非奇异矩阵,且要求线性代数方程组Mx=d 容易求解,一般
选择为A 的某一部分元素构成的矩阵,称M 为A 的分裂矩阵。于是,求解Ax=b 转化为求解
Mx=Nx+b,由此可构造一个迭代法:
x(0)(初始向量) , x(k+1)=Bx(k)+f (k=0,1,2…)
其中,f=b/M,B=I-A/M 为迭代法的迭代矩阵。
选取M 为A 的对角元素组成的矩阵,即选取M=D ,可得到解Ax=b 的迭代法:
x(0)(初始向量),x(k+1)=Bx(k)+f (k=0,1,2…)
B J 为求解Ax=b 的雅克比迭代法的迭代矩阵。
解迭代法的计算公式为:
⎪⎩
⎪⎨⎧--==∑∑+=-=+)(1),.......,,(1)(11)()1()0()0(2)0(1)0(n i j k j ij i j k j ij i ii k i T n x a x a b a x x x x X (k=0,1,2,……:i=1,2,3,……..n ) 迭代法方法是求对称矩阵的全部特征值以及相应的特征向量的一种方法,,它是基于以下
两个结论:
1)任何实对称矩阵A 可以通过正交相似变换成对角型,即存在正交矩阵Q ,使得 错误!
未找到引用源。AQ=diag(错误!未找到引用源。) 其中错误!未找到引用源。i (i=1,2,…,n )是A 的特
征值,Q 中各列为相应的特征向量。
2)在正交相似变换下,矩阵元素的平方和不变。即设错误!未找到引用源。,Q 为交矩阵,
记B=错误!未找到引用源。AQ=错误!未找到引用源。,则错误!未找到引用源。
基本思想:是通过一次正交变换,将A 中的一对非0的非对角线化成0,并且使得非对角
元素的平方和减小。反复进行上述过程,使变换后的矩阵的非对角元素的平方和趋于0,从而
使该矩阵近似为对角矩阵,得到全部特征值和特征向量。
1.2 直接三角分解法
矩阵直接三角分解法:是高斯消去法的变形方法。高斯消去法有多种变形,有的是高斯消去法的改进,有的是用于某种特殊系数矩阵的化简。高斯消去法解线性方程组先消元,然后再回代。当用矩阵描述时,是对系数矩阵分解为一个上三角阵和一个下三角阵的乘积,即LU 分解。因此,高斯消去法与矩阵的LU分解是一致的。
将高斯消去法改写为紧凑形式,可以直接从矩阵A的元素得到计算L,U元素的递推公式,而不需要任何中间步骤,这就是所谓的直接三角分解法,一旦实现了矩阵A的LU分解,那么求解Ax=b的问题就等价于求解两个三角形方程组:错误!未找到引用源。的问题,而这两个线性代数方程组只要回代,就可以求出其解。
设A为非奇异矩阵,且有分解式A=LU,其中L为单位下三角矩阵,U为单位上三角矩阵,A=错误!未找到引用源。错误!未找到引用源。
第一步,用L的第一行分别乘以U的第j(j=1,2,…,n)列,比较两边可得
错误!未找到引用源。(j=1,2,…,n) 分别用L的第i(i=1,2,…,n)行乘U的第一列,比较可得错误!未找到引用源。(i=1,2,…,n) 即得错误!未找到引用源。 (i=1,2,…,n) 这样就求出了L的第一列和U的第一行的所有元素。
依次进行下去,一直到第k-1步,即已求出L的前k-1列和U的前k-1行的所有元素。
第k步,用L的第k行分别乘U的第j(j=k,k+1,…,n)列,比较两边可得:错误!未找到引用源。=错误!未找到引用源。+…+错误!未找到引用源。+错误!
未找到引用源。 (j=k,k+1,…,n)
分别用L的第i(i=k+1,…,n)行乘U的第k列,比较两边可得:
错误!未找到引用源。=错误!未找到引用源。+…+错误!未找到引用源。+错误!未找到引用源。 (i=k+1,…,n)
总结上述讨论,得到用直接三角分解法求解Ax=b的计算公式:
…,n), 错误!未找到引用源。 (i=2,3,…,n) 错误!未找到引用源。(j=1,2,
错误!未找到引用源。 (j=k,k+1,…,n)
错误!未找到引用源。 (i=k+1,k+2,…,n)
及求解Ly=b,Ux=y的计算公式:
错误!未找到引用源。(k=2,3,…,n),错误!未找到引用源。(k=n-1,n-2,…,2,1)
1.3 高斯列主元消去法