力学中的计算方法(解线性方程组的迭代法)
- 格式:ppt
- 大小:722.50 KB
- 文档页数:22
第二章解线性代数方程组的迭代法2. 1 引言在许多实际问题中,常常需要求解这样的线性代数方程组,它的系数矩阵数很高,但非零元素很少,人们称其为大型稀疏线性代数方程组,对于这类方程组,如果它乂不具有带状性,那么,再用直接法求解就不太有效,因为用直接法进行消元或矩阵的三角分解时,没有考虑到系数矩阵的稀疏性,破坏了系数矩阵的形状,导致了计算量的增加和存储单元的浪费,于是,人们常用迭代法求解大型稀疏线性代数方程组。
迭代法只需要存储系数矩阵的非零元素,这样,占用内存在单元较少,能解高阶线性代数方程组。
山于迭代法是通过逐次迭代来逼近方程组的解,因此,收敛性和收敛速度是构造迭代法时要注意的问题。
那么,是否可以构造一种适用于一般情况的迭代法呢?回答是否定的,这是因为不同的系数矩阵具有不同的性态,一般地,每一种迭代法都具有一定的适用范围,在本章的学习中将会看到,有时,某种方法对一类方程组迭代收敛,而对另一类方程组进行迭代时就会发散。
因此,我们应该学会针对具有不同性质的线性代数方程组,构造合适的迭代方法。
本章主要介绍一些基本的迭代法,并在一定的范围内讨论其中儿种方法的收敛法。
2. 2 基本迭代法考虑线性方程组如坷+如勺+…+气兀”二勺a2t x i+a22x2 + - + a2…x n =b2■•••••••••••(2. 1)采用矩阵和向量记号,我们可以把(2.1)式写成Ax = h(2.2)其中,为非奇异矩阵,设下面我们介绍雅可比(Jacobi)迭代,高斯-塞德尔(Gauss-Seidel)迭代与S0R迭代以及SS0R迭代的基本思想和算法。
为了方便地给出矩阵表示式,我们引进下列矩阵分裂:4SD-U,(2.3)其中-a2\-a n\(1)雅可比迭代的基本思想从式(2.1)的第i个方程中解出X t=(/ = 1,2,•••,«)我们把迭代前面的值代入上式右边,山计算得到等式左边的值作为一次迭代的新值,然后再把这个新值代入右边,再从左边得到一个新值,如此反复,就得到了雅可比迭代公式。
计算方法3_线性方程组迭代解法线性方程组的迭代解法是解决线性方程组的一种常见方法,常用于大规模的线性方程组求解。
该方法通过不断迭代更新解的近似值,直到满足一定的收敛准则为止。
线性方程组的迭代解法有很多种,其中最经典的是雅可比迭代法、高斯-赛德尔迭代法和超松弛迭代法。
本文将分别介绍这三种迭代解法及其计算方法。
雅可比迭代法是一种比较简单的线性方程组迭代解法,它的基本思想是先将线性方程组转化为对角占优的形式,然后通过迭代求解逐渐接近精确解。
雅可比迭代法的迭代公式为:其中,x^(k+1)是第k+1次迭代的近似解,n是未知数的个数,a_ij 是系数矩阵A的元素,f_i是方程组的右端向量的元素。
雅可比迭代法的计算步骤如下:1.将线性方程组转化为对角占优的形式,即保证矩阵A的对角元素绝对值大于其它元素的绝对值。
2.初始化向量x^(0),设定迭代终止准则。
3.根据雅可比迭代公式,计算x^(k+1)。
4.判断迭代终止准则是否满足,如果满足,则停止迭代,返回近似解x^(k+1);否则,继续进行下一次迭代。
高斯-赛德尔迭代法是雅可比迭代法的改进方法,它的基本思想是在每次迭代计算x^(k+1)时,利用已经计算出的近似解作为x的一部分。
高斯-赛德尔迭代法的迭代公式为:其中,x^(k+1)_i是第k+1次迭代的近似解中第i个未知数的值,x^(k)_i是第k次迭代的近似解中第i个未知数的值。
高斯-赛德尔迭代法的计算步骤如下:1.将线性方程组转化为对角占优的形式。
2.初始化向量x^(0),设定迭代终止准则。
3.根据高斯-赛德尔迭代公式,计算x^(k+1)。
4.判断迭代终止准则是否满足,如果满足,则停止迭代,返回近似解x^(k+1);否则,继续进行下一次迭代。
超松弛迭代法是对高斯-赛德尔迭代法的一种改进方法,它引入了松弛因子ω,通过调整参数ω的值,可以加快迭代的收敛速度。
超松弛迭代法的迭代公式为:其中,0<ω<2,x^(k+1)_i是第k+1次迭代的近似解中第i个未知数的值,x^(k)_i是第k次迭代的近似解中第i个未知数的值。
解线性方程组的迭代法Haha送给需要的学弟学妹摘要:因为理论的分析表明,求解病态的线性方程组是困难的,但是实际情况是否如此,需要我们来具体检验。
系数矩阵H 为Hilbert 矩阵,是著名的病态问题。
因而决定求解Hx b =此线性方程组来验证上述问题。
详细过程是通过用Gauss 消去法、J 迭代法、GS 迭代法和SOR 迭代法四种方法求解Hx b =线性方程组。
关键词:病态方程组、Gauss 消去法、J 迭代法、GS 迭代法、SOR 迭代法目录:一、问题背景介绍二、建立正确额数学模型 三、求解模型的数学原理1、Gauss 消去法求解原理2、Jacobi 迭代法求解原理3、G-S 迭代法求解原理4、SOR 迭代法求解原理5、Jacobi 和G-S 两种迭代法收敛的充要条件 四、计算过程(一)Hilbert 矩阵维数n=6时1、Gauss 消去法求解2、Jacobi 迭代法求解3、G-S 迭代法求解4、SOR 迭代法求解(二)Hilbert 矩阵维数n=20、50和100时1、G-S 迭代法求解图形2、SOR 迭代法求解图形 五、编写计算程序 六、解释计算结果1、Gauss 消去法误差分析2、G-S 迭代法误差分析3、SOR 迭代法误差分析G-S 迭代法与SOR 迭代法的误差比较 七、心得体会正文:一、问题背景介绍。
理论的分析表明,求解病态的线性方程组是困难的。
实际情况是否如此,会出现怎样的现象呢?二、建立正确的数学模型。
考虑方程组Hx b =的求解,其中系数矩阵H 为Hilbert 矩阵,,,1(), , ,1,2,,1i j n n i j H h h i j n i j ⨯===+-这是一个著名的病态问题。
通过首先给定解(为方便计算,笔者取x 的各个分量等于1),再计算出右端,b Hx =这样Hx b =的解就明确了,再用Gauss 消去法、J 迭代法、GS 迭代法和SOR 迭代法四种方法分别求解,Hx b =将求解结果与给定解比较,而后求出上述四种方法的误差,得出哪种方法比较好。
高斯-赛德尔迭代(Gauss-Seidel iteration)是一种用于解线性方程组的迭代计算方法。
它是雅可比迭代(Jacobi iteration)的一种改进,以求解形如 Ax = b 的线性方程组。
迭代过程中,高斯-赛德尔方法按顺序更新解向量的每个分量,所得新值将直接用于后续计算。
这种按顺序更新的方法使收敛速度通常比雅可比迭代法更快。
给定一个 n×n 的系数矩阵 A 和一个 n 维列向量 b ,线性方程组表示为 Ax = b。
高斯-赛德尔迭代的步骤如下:将系数矩阵 A 分解为两部分:一个下三角矩阵 L(包括对角线)和一个上三角矩阵 U(不包括对角线)。
因此,A = L + U。
选取一个初始解向量 x^(0)。
对于每次迭代,按以下顺序更新 x 中的每个分量:x^(k+1)_i = (b_i - sum(A_ij * x^(k+1)_j, j=1 to i-1) - sum(A_ij * x^(k)_j, j=i+1 to n)) / A_ii, for i=1 to n其中,k 是迭代次数,x^(k)_i 是第 k 次迭代得到的解向量中的第 i 个分量。
判断收敛性:计算解向量相邻两次迭代之间的误差,通常采用范数(如无穷范数)表示。
如果误差满足设定的收敛准则(如小于某个阈值),则停止迭代。
如果未达到收敛准则,返回步骤 3,再次迭代。
需要注意的是,高斯-赛德尔迭代的收敛性并非总是得到保证。
通常,当系数矩阵 A 为严格对角占优矩阵(或正定矩阵)时,迭代方法才具有收敛性。
在实际应用中,常尝试使用一系列预处理技术(如 ILU 分解)通过改变原始线性方程组的形式来提高迭代收敛性。