C语言编程求解线性方程
本 科 专 业 学 年 论 文题 目 : 线性方程组求解方法比较姓 名 郭 凤 专 业 计算机科学与技术专业 班 级 08 级本科(2 )班 指导教师 刘 晓 娜 完成日期:2010 年 1 月 8 日题 目 : 线性方程组求解方法比较摘 要目前在许多实际应用领域, 诸如航空、造船以及其它结构工程中, 常遇到求解大型线性代数方程组的问题。本文根据线性代数方程组的雅可比迭代法、LU 分解法及高斯列主元消去法三种解法进行了比较,用以方便在实际生活应用中更好的作出选择。在第二章中本文详细的介绍了线性代数方程组的三种解法的理论知识与证明过程。为了更加清晰的展现三种方法的不同点以及其各自的优越性,本文在第三章中给出了实例,通过实例的计算与程序的实现,再结合三种方法的优缺点进行了比较。 关键字:线性代数方程组、迭代法、LU 分解法、高斯列主元消去法、不同点、比较目 录第一章 绪论 …………….………………………………………………………………………………………………………4第二章 求解线性方程组的基本理论2.1 迭代法 …………………………………………………………………………………………………………….52.2 直接三角分解法 …………………………………………………………………………………………….62.3 高斯消去法 …………………………………………………………………………………………………….7第三章 三种算法求解方程组实例3.1 迭代法 ……………………………………………………………………………………………………………83.2 直接三角分解法 …………………………………………………………………………………………103.3 高斯列主元消去法 ……………………………………………………………………………………….143.4 三种方法的优缺点比较 ………………………………………………………………………….16参考文献 ………………………………………………………………………………………………………17计算机专业学年论文 线性方程组求解方法比较3第一章 绪 论在自然科学、工程技术、经济和医学各领域中产生的许多实际问题都可以通过数学语言描述为数学问题,也就是说,由实际问题建立数学模型,然后应用各种数学方法和技巧来求解,最后把结果反馈到实际应用中去。计算数学是数学学科的一大分支,它研究如何借助于计算机求解各类数值问题。应用计算机求解各类数值问题需要经历以下几个主要过程:1、实际问题 2、数学模型 3、计算方法4、算法设计 5、计算求解目前已有的数学软件可以帮助我们实现上机计算,基本上已经将数值分析的主要内容设计成简单的函数,只要调用这些函数进行运算便可得到数值结果。数值分析的内通包括线性代数方程组求解、非线性代数方程(组)求解、矩阵的特征值与特征值向量的计算、函数插值、函数逼近、数值积分与数值微分以及微分方程数值解法。线性方程组的求解从理论上可分为两类:直接法和迭代法。直接法是不考虑计算过程中的舍入误差,经过有限次的运算得到方程组精确解的方法,常见的方法是高斯顺序消去法、高斯列主元消去法和矩阵的 LU 分解法。迭代法是采用某种极限过程,用线性代数方程组的近似解逐步逼近精确解的方法。迭代法中常见的方法有简单迭代法、J-迭代法、GS-迭代法和SOR-迭代法。本文主要是分析高斯列主元消去法、矩阵的 LU 分解法和简单迭代法理论上的异同,并用C 语言程序通过具体实例进行了分析比较。本文将线性方程组的求解过程用计算机实现,本文的编写由以下几个特点:1、对于难点问题从具体模型引入,淡化抽象的概念与定理,通俗易通;2、对于具体模型本文给出了多种解题的思想及方法;3、对问题进行简洁易懂的理论证明,突出了线性代数的理论和基本思想,使数学方法更加利于理解掌握。4、简要分析了算法的计算效果、稳定性、收敛效果、计算精度以及优劣性。计算机专业学年论文 线性方程组求解方法比较4第二章 求解线性方程组的基本理论2.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…) BJ为求解 Ax=b 的雅克比迭代法的迭代矩阵。解雅克比迭代法的计算公式为:(k=0,1,2, ……:i=1,2,3,……n) )(1,.1(1)()( )0(02)(0( nijkjijkjiki TxabaxxX雅克比方法是求对称矩阵的全部特征值以及相应的特征向量的一种方法, ,它是基于以下两个结论:1)任何实对称矩阵 A 可以通过正交相似变换成对角型,即存在正交矩阵 Q,使得 AQ=diag( ) 其中 i(i=1,2,…,n)是 A 的特征值,Q 中各列为相应的特征向量。𝑄𝑇 𝜆1,𝜆2,…,𝜆𝑛𝜆2)在正交相似变换下,矩阵元素的平方和不变。即设 ,Q 为交矩阵,记 B=𝐴=(𝑎𝑖𝑗)𝑛∗𝑛 AQ= ,则𝑄𝑇 (𝑏𝑖𝑗)𝑛∗𝑛𝑛∑𝑖,𝑗=1𝑎2𝑖𝑗=𝑛∑𝑖,𝑗=1𝑏2𝑖𝑗雅克比方法的基本思想:是通过一次正交变换,将 A 中的一对非 0 的非对角线化成 0,并且使得非对角元素的平方和减小。反复进行上述过程,使变换后的矩阵的非对角元素的平方和趋于 0,从而使该矩阵近似为对角矩阵,得到全部特征值和特征向量。计算机专业学年论文 线性方程组求解方法比较52.2 直接三角分解法矩阵直接三角分解法:是高斯消去法的变形方法。高斯消去法有多种变形,有的是高斯消去法的改进,有的是用于某种特殊系数矩阵的化简。高斯消去法解线性方程组先消元,然后再回代。当用矩阵描述时,是对系数矩阵分解为一个上三角阵和一个下三角阵的乘积,即LU 分解。因此,高斯消去法与矩阵的 LU 分解是一致的。将高斯消去法改写为紧凑形式,可以直接从矩阵 A 的元素得到计算 L,U 元素的递推公式,而不需要任何中间步骤,这就是所谓的直接三角分解法,一旦实现了矩阵 A 的 LU 分解,那么求解 Ax=b 的问题就等价于求解两个三角形方程组: 的问题,而这两个线性代{Ly=𝑏, 求 x