典型结构大型线性代数方程组的求解
- 格式:doc
- 大小:66.00 KB
- 文档页数:6
线性代数求解方法和技巧线性代数是数学中重要的一个分支,研究向量空间、线性变换和线性方程组等内容。
在实际问题中,我们常常需要用线性代数的方法来解决问题,因此掌握线性代数的求解方法和技巧对于理解和应用数学是非常重要的。
首先,我们讨论线性方程组的求解方法。
线性方程组是由一组线性方程组成的方程组,其中每个方程的未知数的次数都为1。
对于n个未知数和m个方程的线性方程组,我们有以下几种常用的求解方法:1. 列主元消元法:这是最常用的线性方程组求解方法之一。
它的基本思想是通过行变换将线性方程组化为一个三角形式,进而求解得到方程组的解。
在进行行变换时,要选择合适的列主元,即选择主元元素绝对值最大的一列作为主元素。
2. 矩阵求逆法:对于一个可逆的n阶方阵A,我们可以通过求A的逆矩阵来求解线性方程组Ax=b。
具体地,我们首先通过高斯消元法将方程组化为三角形式,然后根据三角形式的矩阵求逆公式来求解x。
3. LU分解法:对于一个n阶非奇异矩阵A,我们可以将其分解为一个下三角矩阵L和一个上三角矩阵U的乘积,即A=LU。
接着,我们可以通过LU分解来求解线性方程组Ax=b。
具体地,我们首先通过LU分解将方程组化为Lc=b和Ux=c两个方程组,然后依次求解这两个方程组得到x的值。
除了以上的求解方法,还有一些线性方程组的特殊情况和对应的求解方法:1. 齐次线性方程组:如果线性方程组右边的常数项都为0,即b=0,那么我们称为齐次线性方程组。
对于齐次线性方程组,其解空间是一个向量空间。
我们可以通过高斯消元法来求解齐次线性方程组,先将其化为三角形式,然后确定自由未知量的个数,最后确定解空间的基底。
2. 奇异线性方程组:如果线性方程组的系数矩阵A是奇异矩阵,即det(A)=0,那么我们称为奇异线性方程组。
对于奇异线性方程组,其解可能不存在,或者存在无穷多解。
我们可以通过计算矩阵A的秩来确定线性方程组的解的情况。
另外,在实际问题中,我们可能会遇到大规模的线性方程组,这时候求解方法和技巧还需要考虑到计算效率的问题。
常见的线性代数求解方法
1.列主元消去法
列主元消去法是一种经典的求解线性方程组的方法。
它通过将
方程组转化为上三角矩阵的形式来求解。
这个方法的关键在于选取
主元的策略。
一种常见的选取主元的策略是选择当前列中绝对值最
大的元素作为主元,然后进行消去操作,直到将矩阵转化为上三角
矩阵。
2.高斯-约当消去法
高斯-约当消去法是另一种常见的线性方程组求解方法。
它通
过消去矩阵的下三角部分来将线性方程组转化为上三角矩阵的形式。
这个方法也需要选择主元,常见的选择策略是选取当前行中绝对值
最大的元素作为主元,然后进行消去操作。
3.LU分解法
LU分解法是将矩阵分解为一对矩阵的乘积的方法。
这个方法的思想是先将矩阵分解为一个下三角矩阵和一个上三角矩阵,然后通过求解上三角矩阵和下三角矩阵的两个方程组来求解原始的线性方程组。
4.Jacobi迭代法
Jacobi迭代法是一种迭代求解线性方程组的方法。
它通过将原始的线性方程组转化为一个对角矩阵和另一个矩阵的乘积的形式,然后通过迭代求解这个对角矩阵和另一个矩阵的方程组来逼近线性方程组的解。
5.Gauss-Seidel迭代法
Gauss-Seidel迭代法是另一种迭代求解线性方程组的方法。
它与Jacobi迭代法类似,但是在每一次迭代中,它使用前一次迭代得到的部分解来更新当前的解。
这个方法通常比Jacobi迭代法收敛得更快。
以上是一些常见的线性代数求解方法。
每种方法都有其特点和适用范围,我们可以根据具体情况选择合适的方法来求解线性方程组的问题。
线性代数求解技巧线性代数是数学中的一个重要分支,广泛应用于科学、工程和计算领域。
线性代数的核心是通过矩阵和向量的运算来解决线性方程组、矩阵的特征值和特征向量等问题。
在线性代数中,我们可以采用一些技巧来简化计算和求解问题。
下面将介绍一些常用的线性代数求解技巧。
1. 高斯消元法高斯消元法是求解线性方程组的常用技巧。
这种方法通过矩阵的初等行变换将方程组转化为行阶梯形式,从而简化求解过程。
首先,将方程组表示成增广矩阵的形式,然后通过交换行、乘以非零常数和将一行的倍数加到另一行上的操作,将矩阵转化为行阶梯形式。
接着,通过回代的方式求解出方程组的解。
高斯消元法在实际应用中非常方便,可以高效地求解大规模的线性方程组。
2. LU分解LU分解是将矩阵分解为一个下三角矩阵和一个上三角矩阵的乘积的过程。
LU分解可以简化求解线性方程组的过程,并且在分解完成后,可以通过前向替代和后向替代的方式求解出方程组的解。
LU分解的优点是可以在多次使用同一个系数矩阵的情况下,避免重复计算。
3. 特征值与特征向量特征值和特征向量是矩阵的重要性质,可以用于求解许多线性代数问题。
特征值表示的是矩阵变换后,向量沿着特定方向发生多大变化的量度。
特征向量是在矩阵变换后,仍然保持在同一方向上的向量。
通过求解特征值和特征向量,我们可以得到一些矩阵的重要性质,如矩阵的谱半径和最大特征值等。
4. 奇异值分解奇异值分解是将一个矩阵分解为三个矩阵的乘积的过程。
奇异值分解广泛应用于信号处理、数据压缩和机器学习等领域。
通过奇异值分解,我们可以得到矩阵的奇异值和左、右奇异向量。
奇异值表示了矩阵的重要程度和变换的能力,而奇异向量表示矩阵变换的方向。
奇异值分解可以用于矩阵的降维和矩阵逆的计算等问题。
5. 内积和正交性内积是线性代数中的一个重要运算,它可以表示两个向量的夹角和它们之间的相似度。
内积有许多重要的性质,如对称性、线性性和正定性等。
利用内积的性质,我们可以定义向量的长度、向量的投影和向量的正交性等概念,并解决一些与向量之间的关系有关的问题。
线性代数:方程组求解有哪些常见方法?线性代数:方程组求解有哪些常见方法?随着科技的发展,人们对于数学的研究越来越深入。
在解决问题时,人们发现,方程组求解在很多领域都具有重要的应用。
方程组是一种由若干个方程组成的系统,每个方程中包含有若干个变量和常数。
求解方程组即是求其变量的值使得系统中所有方程同时成立。
在解决方程组问题中,线性代数是一门非常重要的数学分支。
线性代数涉及到向量、矩阵、线性变换等概念,是许多工程和科学领域所必需的数学基础。
本文将为大家介绍方程组求解中的几种常见方法。
1.高斯消元法高斯消元法又称为消元法或者高斯-约旦消元法。
最早被高斯提出,经过多次完善,现在是解决线性方程组最常用的方法之一。
它通过一系列的基本变换,把一个方程系统化为等价的简化阶梯状方程组。
高斯消元法的基本思想是:通过消元得到增广矩阵的简化阶梯形式,之后通过回代得到变量的值。
消元的过程中需要考虑主元,使得每一行的第一个非零元素都是该行中最重要的数。
主元可以根据所需精度选择,常见主元选择有部分主元和全主元。
高斯消元法的计算量较大,对于大规模的方程组来说,计算量甚至会超过计算机的处理能力。
2.矩阵分解法矩阵的分解是另一种解决线性方程组的方法。
矩阵分解将矩阵分解成若干个较为简单的矩阵,之后再求解这些矩阵。
该方法在解决大型方程组时效率比较高。
常见的矩阵分解有LU分解、Cholesky分解、QR分解。
LU分解:将系数矩阵A分解为一个下三角矩阵L和一个上三角矩阵U的乘积。
通过LU分解可以避免梯形阵的计算。
LU分解在求解一次的时候时间复杂度与高斯消元法相同,但是在多次求解中LU分解的效率更高。
Cholesky分解:当矩阵是实对称正定时,可以使用Cholesky分解。
Cholesky分解可以将矩阵分解成一个下三角矩阵L的转置和L的乘积。
QR分解:QR分解是将矩阵A分解成正交矩阵Q和上三角矩阵R的乘积。
QR分解可以对矩阵进行正交化,使得求解方程组的计算更加稳定。
线性代数方程组求解线性代数方程组是线性代数中一个重要的概念,它描述了一组线性方程的集合。
求解线性代数方程组是线性代数中的一项基本任务,它对于解决实际问题和数学推理都具有重要意义。
本文将介绍线性代数方程组的求解方法,包括矩阵消元法和矩阵的逆。
矩阵消元法矩阵消元法是求解线性代数方程组的一种常用方法。
它通过消元和回代两个步骤来求解方程组。
具体步骤如下:1.构造增广矩阵:将线性方程组的系数矩阵和常数向量按列合并,得到增广矩阵。
2.初等行变换:对增广矩阵进行初等行变换,将其转化为阶梯形矩阵或行最简形矩阵。
3.回代求解:从最后一行开始,逐步代入求解未知数,得到方程组的解。
矩阵消元法的优点是简单直观,容易理解和实现。
然而,当矩阵的行数和列数较大时,矩阵消元法的计算复杂度会很高,需要消耗大量的时间和计算资源。
矩阵的逆除了矩阵消元法,我们还可以使用矩阵的逆来求解线性代数方程组。
矩阵的逆是一个与原矩阵相乘后得到单位矩阵的矩阵。
对于给定的线性方程组Ax=b,我们可以通过以下步骤求解:1.计算矩阵A的逆矩阵A^-1。
2.将方程组转化为x=A^-1b。
3.计算x的值。
求解矩阵的逆的方法有多种,包括伴随矩阵法和初等变换法等。
其中,伴随矩阵法是一种常用的求解逆矩阵的方法。
它通过求解伴随矩阵和矩阵的行列式来计算矩阵的逆。
使用矩阵的逆求解线性代数方程组的优点是计算速度快,尤其适用于行数和列数较大的情况。
然而,矩阵的逆并不是所有矩阵都存在,如果矩阵不存在逆矩阵或逆矩阵存在但计算困难,则无法使用矩阵的逆求解方程组。
小结线性代数方程组的求解是线性代数中的一个重要问题,涉及到实际问题的解决和数学推理。
本文介绍了两种求解线性代数方程组的方法:矩阵消元法和矩阵的逆。
矩阵消元法通过消元和回代的过程来求解方程组,简单直观但计算复杂度较高;矩阵的逆通过求解矩阵的逆矩阵来求解方程组,计算速度快但存在逆矩阵不存在的情况。
根据具体问题的需求和矩阵性质的条件,选择合适的方法来求解线性代数方程组是十分重要的。
线性代数方程组的解法关键词:线性代数方程组;高斯消元法;列主元消元法;三角分解法;杜立特尔分解法;迭代法;雅可比迭代法;高斯-赛德尔迭代法1引言目前,解线性代数方程组在计算机上常用的的方法大致把它分为两类:“直接法”与“迭代法”.在线性代数中曾指出阶线性代数方程组有唯一的解,并且可以用克拉默法则求方程组的解,初次看来问题已经解决,但从使用效果看并不是这样的.因为求阶线性代数方程组,如果用克拉默法则,需要计算个阶行列式,每个阶行列式为项之和,每项又是个元素的乘积,所以计算中仅乘法次数就高达次,当较大时,它的计算量是非常惊人的.因为现在所碰到的很多问题都需要很大的计算量,故需要好用的算法来求解.先来回顾一下回代过程和迭代过程.(1)是一个三角形方程组,当有唯一解时,可以用反推的方式求解,也就是先从第个方程解得, (2)然后代入第个方程,可得到, (3)如此继续下去,假设已得到,, , ,代进第个方程即得的计算, (4)上述求解的过程叫做回代过程.定义1[1] (向量的范数) 若向量的某个实值函数满足1.是非负的,即且的充要条件是 ;2.是齐次的,即 ;3.三角不等式,即对,总是有.那么上向量的范数(或模)就是 .下面给几个最常遇到的向量范数.向量的“1”范数:(5)向量的“2”范数:(6)向量的范数:(7)例1设求 , , .解由式(5),(6)及(7)知.定义2若矩阵的某个实值函数满足1.是非负的,即且的充要条件是 ;2.是齐次的,即 ;3.三角不等式,即对总有;1.矩阵的乘法不等式,即对总有,那么称为上矩阵的范数(或模).表 1是矩阵几个常用算子范数的定义与算式.表 1范数名称记号定义计算公式“1”范数(又名列模)“2”范数(又名谱模)“”范数(又名行模)的极限就是方程组的解向量,这时候在给定允许的误差内,只要适当的大,就可以作为方程组在满足精度要求条件下的近似解.这种求近似解的方法就是解线性方程组的一类基本的迭代解法,其中称为迭代矩阵,公式(9)称迭代公式(或迭代过程),由迭代公式得到的序列叫做迭代序列.如果迭代的序列是收敛的,则称为迭代法收敛;如果迭代的序列是不收敛,则称它是迭代法发散.定理3设 .如果约化主元素,则可以利用高斯消元的方法把方程组约化成三角形方程组来求解,其计算公式如下:(1)消元计算:对依次计算(2)回代计算:3用高斯消元法与列主元消元法解线性代数方程组(重点)!3.1 高斯消元法解方程组用高斯消元的方法求线性代数方程组的解的整个计算过程可分为两个环节,也就是利用按照次序消去未知数的方法,把原来的方程组转化成跟它同解的三角形方程组(这个转化的过程叫消元过程),再通过回代过程求三角形方程组的解,最终得到原来方程组的解.其中按照方程的顺进行消元的高斯消元法,又叫顺序消元法.3.2列主元消元法解方程组列主元消元法实际上是一种行交换的消元法,它跟顺序消元法比较而言,主要特点是在进行第次消元前,不管的值是否等于零,都在子块的第一列中选择一个元,使,并将中的第行元与第行元互相变换(相当于交换同解方程组中的第个方程),然后再进行消元计算得到结果.注:列主元素法的精度虽然稍低于全主元素法[1],但它计算简单,相对比全主元素法它的工作的量大大减少,并且从计算经验和理论分析都可以表明,它与全主元素法同样拥有很好的值稳定性,列主元素法是求解中小型浓密型方程组的最好的方法之一.4用三角分解法解线性代数方程组4.1 矩阵的三角分解定义4把一个阶矩阵分解成两个三角矩阵相乘的形式称为矩阵的三角分解.常见的矩阵三角分解是其中是下三角形的矩阵,是上三角形的矩阵.定理5[1](矩阵三角分解基本定理)设 .若的顺序主子式,那么存在唯一的杜利特尔分解其中是单位下三角形矩阵,为非奇异的上三角形矩阵.如果是单位下三角形的矩阵,是上三角形的矩阵,那么把这种分解法称为杜利特尔分解法,其中杜利特尔分解法是这种三角分解的一种特例,下面主要介绍利用杜利特尔分解法来求方程组的解.4.2 用杜利特尔分解法解线性代数方程组用杜利特尔分解法解方程组的步骤可以把它归纳为(1)实现分解,也就是1.按算式(11)(12)依次计算的第一行元与的第一列元;1.对按算式(13)(14)依次计算的第行元与的第列元.(2)求解三角形方程组,即按算式依次计算 .(3)求解三角形方程组,即按算式依次计算.利用杜利特尔分解法解方程组与高斯消元法是相似的,它重要的优点是:在利用分解,解有相同的系数矩阵的方程组时,用杜利特尔分解法非常方便,只用两个式子就可以得到方程组的解.5用迭代法解线性代数方程组用迭代法求方程组的解,需要考虑迭代过程的收敛性,在下面的讨论中,都假设方程组的系数矩阵的对角阵是不为零的.5.1 用雅可比迭代法解方程组对于一般线性方程组,如果从第个方程解出,就可以把它转化成等价的方程组. (15)从而可以得到对应的迭代公式(16)这就是解一般方程组的分量形式的雅可比(Jacobi)迭代公式.如果把它改成(17)并把系数矩阵表示成(18)其中则可以看出式的左右两端分别是向量和的第个分量,故因为可逆,所以于是就可以得到是雅可比迭代的公式.其中(称为雅可比迭代矩阵), .5.2 用高斯-赛德尔迭代法解方程组高斯-赛德尔迭代法也是常用的迭代法,设线性代数方程组为,则高斯-赛德尔迭代法的迭代公式为(19)其中迭代法(19)就称为高斯-赛德尔迭代法.通过雅可比迭代法类似的途径,就可以得到矩阵的表达式其中(称为高斯-赛德尔迭代矩阵), .高斯-赛德尔迭代法与雅可比迭代法都有算式简单、容易在计算机上实现等优点,但是用计算机来计算时,雅可比迭代法需要两组工作单元用来寄存与的量,而高斯赛-德尔迭代法只需一组工作单元存放或的分量.对于给定的线性方程组,用这两种方法求解可能都收敛或者都不收敛,也可能一个收敛另一个不收敛,两种方法的收敛速度也不一样.5.3 迭代法的收敛条件与误差分析定义6[1]矩阵全部的特征值的模的最大值,叫做矩阵的谱半径,记作 ,即.定理7[1]对任意初始向量迭代过程收敛的充要条件是;当时,越小,那么其收敛的速度是越快的.由定理7可知,用雅可比迭代法求解时,其迭代的过程是收敛的,而用高斯-赛德尔迭代法来求解,其迭代的过程是发散的.在不同条件下,收敛的速度是不同的,对同一矩阵,一种方法是收敛的,一种方法发散.第 7 页。
文献综述1 前言典型结构大型线性代数方程组的求解是许多应用领域的基础,如:结构分析、电子工程、油藏模拟、计算机辅助几何设计、大气污染研究、化学工程和经济模型模拟、核物理和计算流体力学、数值天气预报等。
在数学物理及工程技术领域,如微分方程的求解、多项式插值、网络、系统控制等方面也常会碰到的大型、分块三对角矩阵为系数阵的线性方程组的求解问题。
一般,动态过程的数学模型由偏微分方程描述,而偏微分方程的离散化通常导出大型线性方程组,它们可能是对称或非对称的大型稀疏线性方程组,也可能是结构化的大型稀疏线性方程组。
甚至于对于依赖于时间的非线性问题,其全局计算的中间步骤也需要对线性方程组的求解。
长期以来,伴随着计算环境的不断变化,人们对于求解各类大型线性方程组的适应新的计算环境的新方法的探求从来也没有停止过。
目前,分布式存储并行处理机系统己经成为许多科学和工程问题的计算环境,成为求解重大挑战性问题的首选工具;工作站机群(NOWs)和PC 机群作为具有良好性价比的分布式存储并行处理机系统已广泛应用于各类科学和工程计算问题。
典型结构大型线性方程组的解法从总体上说可分为直接法和迭代法两大类。
求解具有结构化系数矩阵的大型线性方程组的研究近年主要集中在直接法,而迭代法近年来已发展为求解一般大型稀疏线性方程组的主要方法。
本文所研究的内容如下:考虑大型线性方程组,,n n n Ax b A R x b R ⨯=∈∈、,其中A 为三对角或块三对角系数矩阵,探讨分布式存储环境下求解大型线性方程组的高效并行算法。
在科学与工程问题中经常遇到的许多微分方程,经过适当差分或有限元离散而形成系数矩阵是块三对角的线性方程组,它们的求解是高性能并行计算的重要课题之一。
目前针对求解块三对角线性方程组的并行算法的研究已经有了一些成果,通过对系数矩阵进行分解与近似处理,构造了具有良好的并行性的算法。
借助现有的并行工具环境,进一步构造出了并行效率更高的并行求解算法。
线性代数⽅程组求解线性代数⽅程组求解⼀、实验要求编程求解⽅程组:⽅程组1:⽅程组2:⽅程组3:要求:⽤C/C++语⾔实现如下函数:1.bool lu(double* a, int* pivot, int n);实现矩阵的LU分解。
pivot为输出参数,pivot[0,n) 中存放主元的位置排列。
函数成功时返回false,否则返回true。
2.bool guass(double const* lu, int const* p, double* b, int n);求线代数⽅程组的解设矩阵Lunxn 为某个矩阵anxn 的LU 分解,在内存中按⾏优先次序存放。
p[0,n)为LU 分解的主元排列。
b 为⽅程组Ax=b 的右端向量。
此函数计算⽅程组Ax=b 的解,并将结果存放在数组b[0,n)中。
函数成功时返回false ,否则返回true 。
3. void qr(double* a, double* d, int n);矩阵的QR 分解假设数组anxn 在内存中按⾏优先次序存放。
此函数使⽤HouseHolder 变换将其就地进⾏QR 分解。
d 为输出参数,d [0,n) 中存放QR 分解的上三⾓对⾓线元素。
4. bool hshld(double const*qr, double const*d, double*b, int n); 求线代数⽅程组的解设矩阵qrnxn 为某个矩阵anxn 的QR 分解,在内存中按⾏优先次序存放。
d [0,n) 为QR 分解的上三⾓对⾓线元素。
b 为⽅程组Ax=b 的右端向量。
函数计算⽅程组Ax=b 的解,并将结果存放在数组b[0,n)中。
函数成功时返回false ,否则返回true 。
⼆、问题分析求解线性⽅程组Ax=b ,其实质就是把它的系数矩阵A 通过各种变换成⼀个下三⾓或上三⾓矩阵,从⽽简化⽅程组的求解。
因此,在求解线性⽅程组的过程中,把系数矩阵A 变换成上三⾓或下三⾓矩阵显得尤为重要,然⽽矩阵A 的变换通常有两种分解⽅法:LU 分解法和QR 分解法。
线性方程组的求解方法线性方程组是数学领域中重要的概念,它在多个领域中都有广泛的应用。
解决线性方程组的问题是数学中的常见任务之一。
在本文中,我们将介绍几种常见的线性方程组求解方法。
高斯消元法是解决线性方程组最常用的方法之一。
它基于矩阵运算和消元法的原理。
在进行高斯消元法求解时,我们将方程组表示为增广矩阵的形式。
通过一系列的行变换操作,我们可以将矩阵转换为上三角矩阵或行简化阶梯形矩阵。
最终,我们可以通过回代法求解得到方程组的解。
雅可比迭代法是一种迭代求解线性方程组的方法。
它基于方程组中每个方程的系数矩阵的逆阵的近似值。
在雅可比迭代法中,我们首先将方程组表示为对角元素为0的形式。
然后,我们可以通过迭代计算每个未知数的近似值,直到达到预设的精度要求。
雅可比迭代法在某些情况下可以比高斯消元法更加高效,尤其是在大规模线性方程组求解时。
Gauss-Seidel迭代法是雅可比迭代法的一种改进方法。
它与雅可比迭代法类似,但在每次迭代中,我们使用上一次迭代计算出的未知变量的近似值。
这样可以加速收敛速度,并且通常比雅可比迭代法更快地求解出线性方程组的近似解。
LU分解法是通过将系数矩阵分解为下三角矩阵和上三角矩阵的乘积来求解线性方程组的方法。
我们首先通过高斯消元法将系数矩阵转换为上三角矩阵,然后再将上三角矩阵分解为下三角矩阵和对角矩阵的乘积。
通过LU分解,我们可以降低求解线性方程组的计算复杂度,并且可以在之后的计算中重复使用已经求解得到的分解矩阵。
QR分解是另一种求解线性方程组的方法。
它将系数矩阵分解为正交矩阵和上三角矩阵的乘积。
通过QR分解,我们可以利用正交矩阵的性质简化线性方程组的求解。
总结起来,我们介绍了几种常见的线性方程组求解方法,包括高斯消元法、雅可比迭代法、Gauss-Seidel迭代法、LU分解法和QR分解法。
这些方法在不同的问题和情境中有不同的适用性。
在实际应用中,我们需要根据具体的问题和要求选择最合适的方法来求解线性方程组。
线性方程组求解方法高等代数视角线性方程组求解方法——高等代数视角线性方程组是高等代数中的重要概念,其解法在实际问题中有广泛的应用。
本文将从高等代数的角度出发,介绍几种常用的线性方程组求解方法,包括高斯消元法、矩阵求逆法、Cramer法则和特征值分解法。
1. 高斯消元法高斯消元法是解决线性方程组的经典方法之一。
其基本思想是通过一系列行变换将线性方程组转化为阶梯形方程组,从而得到方程组的解。
具体步骤如下:(1)将方程组写成增广矩阵的形式,即将方程组的系数矩阵和常数向量合并成一个矩阵。
(2)选取一个主元素,在进行行变换时,以该主元素所在的行为基准进行消元操作。
(3)通过行变换,将主元素下方的所有元素消为0,并重复此步骤,直到得到阶梯形矩阵。
(4)根据得到的阶梯形矩阵,逐行计算出未知数的值。
2. 矩阵求逆法矩阵求逆法是另一种解决线性方程组的常用方法。
当系数矩阵可逆时,可以通过矩阵的逆来求解线性方程组。
是未知数向量,B是常数向量。
(2)如果系数矩阵A可逆,那么方程组的解可以表示为X=A^(-1)B。
(3)通过已知的矩阵求逆方法,求出系数矩阵的逆A^(-1),然后将其与常数向量B相乘,即可得到方程组的解向量X。
3. Cramer法则Cramer法则是另一种解决线性方程组的方法。
它基于行列式的性质,利用矩阵运算求解线性方程组。
(1)将线性方程组写成矩阵形式AX=B,在这里A是系数矩阵,X 是未知数向量,B是常数向量。
(2)计算系数矩阵A的行列式,如果行列式不为0,则方程组有唯一解。
(3)根据Cramer法则,解向量X的每个元素可以表示为X_i =|A_i| / |A|,其中|A_i|表示将系数矩阵A的第i列替换为常数向量B后的行列式,|A|表示系数矩阵A的行列式。
4. 特征值分解法特征值分解法是解决线性方程组的另一种方法,它基于特征值和特征向量的概念。
是未知数向量,λ是特征值。
(2)通过求解特征值方程det(A-λI)=0,得到系数矩阵A的特征值。
文献综述1 前言典型结构大型线性代数方程组的求解是许多应用领域的基础,如:结构分析、电子工程、油藏模拟、计算机辅助几何设计、大气污染研究、化学工程和经济模型模拟、核物理和计算流体力学、数值天气预报等。
在数学物理及工程技术领域,如微分方程的求解、多项式插值、网络、系统控制等方面也常会碰到的大型、分块三对角矩阵为系数阵的线性方程组的求解问题。
一般,动态过程的数学模型由偏微分方程描述,而偏微分方程的离散化通常导出大型线性方程组,它们可能是对称或非对称的大型稀疏线性方程组,也可能是结构化的大型稀疏线性方程组。
甚至于对于依赖于时间的非线性问题,其全局计算的中间步骤也需要对线性方程组的求解。
长期以来,伴随着计算环境的不断变化,人们对于求解各类大型线性方程组的适应新的计算环境的新方法的探求从来也没有停止过。
目前,分布式存储并行处理机系统己经成为许多科学和工程问题的计算环境,成为求解重大挑战性问题的首选工具;工作站机群(NOWs)和PC 机群作为具有良好性价比的分布式存储并行处理机系统已广泛应用于各类科学和工程计算问题。
典型结构大型线性方程组的解法从总体上说可分为直接法和迭代法两大类。
求解具有结构化系数矩阵的大型线性方程组的研究近年主要集中在直接法,而迭代法近年来已发展为求解一般大型稀疏线性方程组的主要方法。
本文所研究的内容如下:考虑大型线性方程组,,n n n Ax b A R x b R ⨯=∈∈、,其中A 为三对角或块三对角系数矩阵,探讨分布式存储环境下求解大型线性方程组的高效并行算法。
在科学与工程问题中经常遇到的许多微分方程,经过适当差分或有限元离散而形成系数矩阵是块三对角的线性方程组,它们的求解是高性能并行计算的重要课题之一。
目前针对求解块三对角线性方程组的并行算法的研究已经有了一些成果,通过对系数矩阵进行分解与近似处理,构造了具有良好的并行性的算法。
借助现有的并行工具环境,进一步构造出了并行效率更高的并行求解算法。
2 研究现状求解典型结构三对角线性代数方程组有多种方法,其解法总体可分为直接法和迭代法两大类。
迭代法(iterative methods )[1,2]主要包括Jacobi 迭代、Gauss-Seidel 迭代、逐次松弛迭代法(SOR ),直接法包括高斯消元和几类并行算法。
迭代法Jacobi 迭代因各个分量的修正相互独立而具有十分明显的内在并行计算特性。
其主要优点是方法简单,然而它并不常是收敛的,收敛时速度常较慢。
在研究如何提高收敛速度的基础上,1983年,Missirlsi 提出了并行Jacobi 型方法,并讨论了它的收敛性。
胡家赣等把它推广到两参数的情形,称之为两参数并行Jacobi 型方法[3]。
对于Gauss —Seidel 迭代,因充分利用上次求出的新值,可加快收敛速度,正因为每次求值都要用到上次的新值,使它不容易并行。
对于SOR 迭代法来说,由于各分量的计算是逐个相关的,因此,一般认为SOR 迭代法不适合并行处理,其内在并行性远不如Jacobi 迭代。
由于SOR 多用于有限差分或有限元方法导致的大型稀疏方程组的求解。
因此,利用系数矩阵零元素或非零元素的特殊分布,采用红黑或多色排序成为实现SOR 并行处理的有效途径。
然而,如何找到合适的“彩色模板”并保持自然排序下的收敛速度却是一个问题。
蔡放等[4]对SOR 方法通过改造提出的向量化SOR 算法,在一定条件下具有较好的并行化计算性能。
后来,吕全义在文献[5]中对BSOR 方法通过改进引入加速因子和松弛因子,使收敛速度相同,但降低了迭代次数。
接着,崔喜宁[6]在此基础上,结合k PE 方法,将内迭代采用k PE 方法,使矩阵的分裂在一定程度上有大的改进,使算法更具灵活性,并行效率也很高。
以上几种基本迭代方法是进行并行迭代的基础,充分了解其并行再借鉴串行算法进行并行程序设计,在这些基础上研究新的算法并重新获得快速的收敛速度。
肖曼玉和吕全义在文献[7]中,提出了一种基于Galerkin 原理求解块三对角线性方程组的Arnoldi 并行算法,通过选取适当的子空间,使算法只在相邻处理机间有通信,因而具有很好的并行性,而且证明了该算法的收敛性。
在HPrx2600集群上进行数值计算,结果表明,加速比呈线性增加,并行效率达到90%以上。
直接法托马斯(Thomas )算法[8]是一种对于三对角线性方程组的特殊的高斯消元方法,也是求解三对角线性方程组首先想到的解法。
Thomas 算法的求解过程可以概括为两个步骤(removing 和backward ),首先从前往后依次消去对角线下方的非零元素;再反向回代解出的值,从后往前依次解出所有的未知变量。
此算法也容易扩展到块三对角矩阵[9]的应用中。
虽然托马斯算法是串行计算机上的最快算法,但由于后面的每一步都要依赖前一步的计算结果,它是不可并行的。
三对角线性方程组和块三对角线性方程组的并行算法,其研究始终非常活跃。
总结以往算法,可将其归为以下几类:(1)循环递减算法(cyclic reduction ),(2)递推倍增算法(recursive doubling ),(3)矩阵分解算法(partition method )。
虽然有Amodio[10]将CR 改进后用到超立方体结构机器,总体而言,递推倍增算法和循环递减算法(CR )是适应向量计算机或共享内存并行机的并行算法。
Lambiotte and V oigt [1]提出了基于CDC STAR-100计算机的循环递减算法,按照这种算法,经过一次递减后,原来的线性方程组中的奇下标未知数都被消去了,而留下了所有偶下标的未知数变量,于是得到原有线性方程组的一半规模的同结构三对角线性方程组[11]。
对新得到的减半线性方程组重复采用循环递减算法,直到最后剩下只含两个未知数的线性方程组,并解出这两个未知数。
后续步骤就是,回代解出的变量至其上一步递减的线性方程组,递归求解得到每个未知量的解值。
如此,回代求解出整个三对角线性方程组的解值[12]。
近年来,随着计算环境的发展,循环递减算法被许多人应用到GPU 上实现[13,14]。
Stone[15,16]首次提出了递推倍增算法。
在递推倍增算法中,涉及到系数矩阵的LU 分解,以及顺向和逆向递推方法。
Wang[17]提出的分裂法属于矩阵分解算法,适用于分布存储环境,受到关注,Michielse 和van der V orst[18]改进了Wang 的分裂法。
迟利华和李晓梅[19]在Michielse 和van der V orst 算法[18]的基础上,提出了双向并行分裂法(DPP 算法)。
另外,Bondeli[18]提出了一种基于分治思想的算法;Mu11er及Scheerer[21]在1991年提出了一种将三对角方程组串行算法并行化的一般方法。
至于块三对角系统和带状系统方面,Rodrigue等[22]曾将奇偶约化法推广到带状系统的并行求解;Meier[23]将Wang的划分算法[17]拓展到带状方程组;Kapur和Brown[24]提出了一种适用于可重构阵列计算机的块三对角线性方程组并行算法;van der V orst[18]于1987年基于不完全分解提出了一种向量并行机上求解大型三对角和块三对角方程组的方法;Ruggiers及Galligani[25]提出了一种基于迭代法和预条件子的块三对角方程组的并行解法。
对于循环块三对角线性方程组,文献[26]中讨论了适用于共享主存向量机的并行算法;胡庆丰、何新芳、李晓梅1791提出了以分块压缩存储形式直接求解的分块追赶法及其在向量机上的并行计算方案。
Chung等[27]给出了一种基于“分治”思想的并行算法,可用于分布存储计算环境。
Toeplitz系统在数学、数字信号处理和ARMA模型中均有广泛应用,Toeplitz 三对角和Toeplitz循环三对角线性方程组的求解,是具有结构化系数矩阵的大型稀疏线性方程组求解中的重要课题。
对于这类方程组,Evans提出了一种基于系数矩阵分解的快速算法[28],是目前求解这类方程组的最快的串行算法;Buckley 给出了一种算法[29],它是由通常的高斯消去法改进而来的;关于Toeplitz循环三对角线性方程组,赵自春、李晓梅提出了一种适用于向量并行机的并行算法[30]。
关于Toeplitz三对角线性方程组,赵自春、李晓梅提出了两种向量并行计算机上适用的并行算法[31]。
Evans和Yousif在文献[32]、文献[33]基础上提出了适用于共享存储多处理机的一种并行算法,它是循环奇偶约化法变化和改进而得的。
成礼智和蒋增荣[34]对带状(块)Toeplitz方程组进行讨论,给出了向量机上的一个快速并行算法。
Poisson方程的求解,导致一类特殊的实对称块三对角线性方程组的求解,这一问题也曾受到广泛关注,它的串行算法和向量或共享共享存储计算机上的并行算法得到了充分的研究。
Buzbee等[35]讨论了求解这类方程组的直接解法:矩阵分解法(MD)和块循环递减法(BCR),以及结合MD与BCR的FACR(l),Buzbee等[35]在同一文献中还对MD方法和BCR方法应用于Poisson方程的情形进行了全面的讨论,涉及到基于FFT的MD方法以及具有数值稳定性的Buneman算法[36]。
Sweet[37]推广Buneman的算法,提出了n为一般正整数时的循环递减法。
Swarztrauber[38]提出了求解Poisson方程的近似循环递减(ACR)方法。
在共享存储环境,上述方法都易于并行实现,文献[26]对基于FFT的MD 方法和Buneman算法的并行实现进行了讨论。
三角形矩阵是一种特殊结构的矩阵。
高效率地并行求解三角形方程组具有非常重要的意义,这是因为系数矩阵A为一般稠密矩阵的大型线性方程组的各种直接解法大都基于化系数矩阵为三角形矩阵的思路来处理。
分布式环境下求解三角形方程已有研究者进行过许多有益的探讨,如Heath和Romine[39],Eisenstat 等[40],Li和Coleman[41,42],Fiebach[43]等。
Li和Coleman于1988年提出了一种求解系数矩阵以列(或行)卷帘方式分布时的三角形方程组并行解法[41],1989年他们又对算法进行了改进[42]。
Fiebach于1996年提出了一种适于网络拓扑为二维网格的分布存储多计算机系统上求解三角形方程组的循环块算法[43]。
3 总结许多计算问题都需要求解三对角线性方程组,这方面最为普通的例子当属椭圆型偏微分方程的差分格式求解了。
三对角线性方程组的并行算法是数值并行算法研究中最重要的问题之一,其研究始终非常活跃。
伴随着计算机体系结构的发展,人们不断地提出和改进了许多三对角线性方程组的并行算法,直接法中由Wang[17]提出的分裂法是贯彻分而治之原则的成功例子,受到广泛重视。