数值计算方法第03章解线性方程组的迭代法

合集下载

计算方法3_线性方程组迭代解法

计算方法3_线性方程组迭代解法

计算方法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个未知数的值。

数值分析第三章线性方程组迭代法

数值分析第三章线性方程组迭代法

数值分析第三章线性方程组迭代法线性方程组是数值分析中的重要问题之一,涉及求解线性方程组的迭代法也是该领域的研究重点之一、本文将对线性方程组迭代法进行深入探讨。

线性方程组的一般形式为AX=b,其中A是一个n×n的系数矩阵,x和b是n维向量。

许多实际问题,如电路分析、结构力学、物理模拟等,都可以归结为求解线性方程组的问题。

然而,当n很大时,直接求解线性方程组的方法计算量很大,效率低下。

因此,我们需要寻找一种更高效的方法来求解线性方程组。

线性方程组迭代法是一种基于迭代思想的求解线性方程组的方法。

其基本思想是通过构造一个序列{xn},使得序列中的每一项都逼近解向量x。

通过不断迭代,可以最终得到解向量x的一个近似解。

常用的线性方程组迭代法有雅可比迭代法、高斯-赛德尔迭代法和逐次超松弛迭代法等。

雅可比迭代法是其中的一种较为简单的迭代法。

其基本思想是通过分解系数矩阵A,将线性方程组AX=b转化为x=Tx+c的形式,其中T是一个与A有关的矩阵,c是一个常向量。

然后,通过不断迭代,生成序列xn,并使序列中的每一项都逼近解向量x。

高斯-赛德尔迭代法是雅可比迭代法的改进方法。

其核心思想是利用当前迭代步骤中已经求得的近似解向量的信息。

具体而言,每次迭代时,将前一次迭代得到的近似解向量中已经计算过的分量纳入计算,以加速收敛速度。

相比于雅可比迭代法,高斯-赛德尔迭代法的收敛速度更快。

逐次超松弛迭代法是高斯-赛德尔迭代法的改进方法。

其核心思想在于通过引入一个松弛因子ω,将高斯-赛德尔迭代法中的每次迭代变为x[k+1]=x[k]+ω(d[k+1]-x[k])的形式,其中d[k+1]是每次迭代计算得到的近似解向量的一个更新。

逐次超松弛迭代法可以根据问题的特点调整松弛因子的值,以获得更好的收敛性。

除了以上提到的三种迭代法,还有一些其他的线性方程组迭代法,如SOR迭代法、共轭梯度法等。

这些方法都具有不同的特点和适用范围,可以根据问题的具体情况选择合适的迭代法。

数值计算方法—解线性方程组的迭代法

数值计算方法—解线性方程组的迭代法

25数值分析—插 值─基于Matlab 的实现与分析§4 多项式函数与函数的最佳逼近§4.1 插值 (Interpolation) §4.1.1 问题的提出在工程地质测量、机械设计及其制造、信号分析等实践中,经常回遇到曲线的描绘或函数的确定问题,平面上的曲线方程可写成如下的形式()x f y =(1)一般情况下,人们能够知道的或者说能够得到的只是曲线上的若干点,如通过测量可以得到曲线上()n i y x i i ,,1,0, =(2)的1+n 个点,由于信息不全,这1+n 个点不足以确定其所在的曲线,因而人们退一步地希望在充分利用这些数据的前提下,确定一条“简单的”且与未知曲线“最接近”的曲线;此外,在科学研究和计算中,往往回遇到复杂函数的分析与计算,有时用简单的函数来代替,可能会去掉不必要的麻烦而使问题比较容易地得到解决。

只需对自变量做加、减法和乘法运算就能得到函数值是多项式函数显著的特点之一,因此,从计算的角度来说多项式函26数是最简单的,因此,在函数最佳逼近方面,“简单的函数(曲线)”指的就是多项式函数(类);所谓“最接近”或者严格地说最佳逼近,就是从指定的一类简单的函数中寻找一个和给定的函数“最贴近”的函数,从几何(空间)的角度看,函数最佳逼近就是从指定的一类简单的函数(点的集合)中寻找一个和给定的函数(定点)之间距离最短的函数(点)。

函数空间中不同的距离度量确定了不同的逼近准则,不同的逼近准则定义了不同的函数最佳逼近。

在插值问题中,最佳逼近准则是:在已知的全部点处,简单函数(被插值多项式)的函数值与未知函数的函数值相等,即()k k y x P =n k ,,2,1,0 = (3)§4.1.2 关于插值问题的基本定理定理:给定1+n 个曲线上点()n i y x ii,,1,0,, =,如果i x ,ni ,,1,0 =互不相同,那么,在所有次数不超过n 次的多项式函数中,存在唯一的多项式函数()x P n,满足条件(3)。

第3章 解线性方程组的迭代法

第3章 解线性方程组的迭代法

第3章 解线性方程组的迭代法3.1 用Jacobi 迭代法和Gauss Seidel -迭代法解线性方程组:(1)1238111151161147x x x -⎛⎫⎛⎫⎛⎫ ⎪ ⎪ ⎪-= ⎪ ⎪ ⎪ ⎪ ⎪ ⎪-⎝⎭⎝⎭⎝⎭(2)12320232418112231530x x x ⎛⎫⎛⎫⎛⎫⎪ ⎪ ⎪= ⎪ ⎪ ⎪ ⎪ ⎪ ⎪-⎝⎭⎝⎭⎝⎭取0[0,0,0]Tx =,迭代五次.解:(1)Jacobi 迭代公式:⎪⎪⎪⎩⎪⎪⎪⎨⎧-+=-+=-+=+++4741415165151818181211331123211k k k k k k k k k x x x x x x x x x取0[0,0,0]Tx =,迭代五次:kk x 1k x 2 kx 30 01 -0.125 -3.2 -1.75 2 -0.74375 -3.575 -2.581253 -0.89453125 -3.865-2.8296875 4 -0.961835938 -3.94484375 -2.939882813 5 -0.98559082-3.98034375 -2.976669922故]669922375,-2.9762,-3.98034-0.9855908[5=x .Gauss Seidel -迭代公式:⎪⎪⎪⎩⎪⎪⎪⎨⎧-+=-+=-+=++++++4741415165151818181121113311123211k k k k k k k k k x x x x x x x x x 取0[0,0,0]Tx =,迭代五次:kk x 1 k x 2 kx 31 -0.125-3.225 -2.58752 -0.8515625 -3.8878125 -2.934843753 -0.977832031 -3.982535156 -2.9900917974 -0.996578369 -3.997334033 -2.998478101 5-0.999476517 -3.999590923 -2.99976686故]997668690923,-2.917,-3.9995-0.9994765[5=x(2)Jacobi 迭代公式:⎪⎪⎪⎩⎪⎪⎪⎨⎧++-=+--=+--=+++25115223818156203101211331123211k k k k k k k k k x x x x x x x x x 取0[0,0,0]Tx =,迭代五次:kk x 1 k x 2 kx 30 0 1 1.2 1.5 2 2 0.75 1.12.14 3 0.769 1.13875 2.124 0.768125 1.138875 2.125216667 5 0.767331.1383322922.125358333故]32.12535833138332292,0.76733,1.[5=x .Gauss Seidel -迭代公式:⎪⎪⎪⎩⎪⎪⎪⎨⎧++-=+--=+--=++++++25115223818156203101121113311123211k k k k k k k k k x x x x x x x x x 取0[0,0,0]Tx =,迭代五次:kk x 1 k x 2 kx 30 0 1 1.2 1.352.112 0.74851.14268752.12873753 0.766420625 1.138105234 2.12543163 4 0.767374732 1.138399205 2.12536321 50.767355598 1.138410149 2.12536795故]6795149,2.12538,1.1384100.76735559[5=x3.2 用Jacobi 迭代法解线性方程组123101091102702108x x x -⎛⎫⎛⎫⎛⎫ ⎪ ⎪ ⎪--= ⎪ ⎪ ⎪ ⎪ ⎪ ⎪-⎝⎭⎝⎭⎝⎭, 取初值向量0[0,0,0]Tx =,要求13||||10k k x x --∞-≤,并讨论方差的收敛性.解:Jacobi 迭代公式:⎪⎪⎪⎩⎪⎪⎪⎨⎧+=++=+=+++1081021071021011091012133112211k k k k k k k x x x x x x x取初值向量0[0,0,0]Tx =kk x 1 k x 2 kx 30 0 0 1 0.9 0.7 0.8 2 0.97 0.95 0.94 3 0.995 0.985 0.99 4 0.9985 0.9975 0.997 5 0.99975 0.99925 0.9995 6 0.9999250.999875 0.9998535610000625.0||-≤=-x x ,迭代6次后可以得到满足误差要求的解; ]99985.999875,0.0.999925,0[6=x ,Jacobi 迭代法收敛.3.3 社线性方程12311112211x x ⎪ ⎪ ⎪= ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭讨论解该线性方程的Jacobi 迭代法和Gauss Seidel -迭代法的收敛性. 解:按Jacobi 迭代法展开:⎪⎪⎪⎭⎫ ⎝⎛---⎪⎪⎪⎭⎫ ⎝⎛----⎪⎪⎪⎭⎫ ⎝⎛=--=⎪⎪⎪⎭⎫ ⎝⎛-=010220022010111122111221U L D A(1) 对于Jacobi 迭代法,其迭代矩阵为:⎪⎪⎪⎭⎫⎝⎛-----=⎪⎪⎪⎭⎫ ⎝⎛-----⎪⎪⎪⎭⎫⎝⎛=+=--022101220022101220111)(11L U D B J J B 的特征矩阵为:3221122||λλλλλ=⎪⎪⎪⎭⎫⎝⎛-=-J B I 解得03,2,1=λ10)(<=J B ρ,故Jacobi 迭代法收敛.(2) 对Gauss Seidel -迭代法,其迭代矩阵为:⎪⎪⎪⎭⎫⎝⎛--=⎪⎪⎪⎭⎫ ⎝⎛--⎪⎪⎪⎭⎫⎝⎛------=-=--200320220010220122111)(11U L D B G G B 的特征矩阵为:2)2(20032022||-=⎪⎪⎪⎭⎫⎝⎛---=-λλλλλλG B I 解得:01=λ,23,2=λ12)(>=G B ρ,故Gauss Seidel -迭代法发散.3.4 设线性方程组1122332313a x b a x b ⎢⎥⎢⎥⎢⎥-=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦其中a 为参数,且0a ≠,试求a 的取值范围,使得解该线性方程组的Jacobi 迭代法收敛.解:按Jacobi 迭代法展开:⎪⎪⎪⎭⎫ ⎝⎛-⎪⎪⎪⎭⎫ ⎝⎛----⎪⎪⎪⎭⎫ ⎝⎛=--=⎪⎪⎪⎭⎫ ⎝⎛---=030120031020313212a a a U L D a a a AJacobi 迭代法,其迭代矩阵为:⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛---=⎪⎪⎪⎭⎫ ⎝⎛---⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=+=-031302120313********)(1aaa a a a a aaU L D B J J B 的特征矩阵为:)14(313212||2a aaa a a aB I J +=⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛---=-λλλλλλ 解得01=λ,i a 142=λ,当1|14||14|)(<==ai a B J ρ,即14||>a 时,Jacobi 迭代法收敛.3.5 用Gauss Seidel -迭代法解线性方程组123142*********x x x --⎛⎫⎛⎫⎛⎫⎪ ⎪ ⎪-= ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭, 是否收敛?若不收敛,则能否改写成线性方程组,使得Gauss Seidel -迭代法收敛.解:(1)按Gauss Seidel -迭代法展开:⎪⎪⎪⎭⎫⎝⎛--⎪⎪⎪⎭⎫ ⎝⎛---⎪⎪⎪⎭⎫ ⎝⎛-=--=⎪⎪⎪⎭⎫ ⎝⎛--=000240020040411420014241U L D A 对Gauss Seidel -迭代法,其迭代矩阵为⎪⎪⎪⎭⎫ ⎝⎛---=⎪⎪⎪⎭⎫ ⎝⎛-⎪⎪⎪⎭⎫ ⎝⎛--=⎪⎪⎪⎭⎫ ⎝⎛-⎪⎪⎪⎭⎫ ⎝⎛-=-=--480816024000024025.05.02014000000240420141)(11U L D B G G B 的特征矩阵为:)20(480816024||2-=⎪⎪⎪⎭⎫⎝⎛---=-λλλλλλG B I 120)(>=G B ρ,Gauss Seidel -迭代法发散.(2)将A 改写成严格对角占优矩阵,则Gauss Seidel -迭代法必收敛,比如:⎪⎪⎪⎭⎫ ⎝⎛=120014241C对Gauss Seidel -迭代法,其迭代矩阵为:⎪⎪⎪⎭⎫ ⎝⎛----=⎪⎪⎪⎭⎫ ⎝⎛--⎪⎪⎪⎭⎫ ⎝⎛--=⎪⎪⎪⎭⎫ ⎝⎛--⎪⎪⎪⎭⎫⎝⎛=-=--163208160240000240128014001000240120141)(11U L D B G G B 的特征矩阵为:316320816024||λλλλλ=⎪⎪⎪⎭⎫⎝⎛+--=-G B I 10)(<=G B ρ,Gauss Seidel -迭代法收敛.3.7 设迭代法f Bx x k k +=+1,,...)2,1,0(=k ,的迭代矩阵B 的谱半径()0B ρ=,试证明该迭代法最多迭代n 次便可得到方程组x Bx f =+的解*x ,即*n x x =.解:n 阶矩阵B 一定相似于它的若当标准型J ,即存在可逆矩阵P 使得1P BP J -=,因为()0B ρ=,故B 的特征值全为0,于是得:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=000 J 由此可知0n J =.x Bx f =+显然有唯一解*x ,即**x Bx f =+,又1**()k k x x B x x +-=-,于是()*2(2)*(0)*()()n n n x x B x x B x x --=-==-又因为1110n n P BP J B P JP B P J P ---=⇒=⇒==所以()*0n xx -=,即*n x x =.3.8 给定线性方程组Ax b =,其中323,121A b ⎡⎤⎡⎤==⎢⎥⎢⎥-⎣⎦⎣⎦若用迭代法,...)1,0)((1=-+=+k b Ax x x k k k α,求解,问:(1) 实数取何值时该迭代法收敛;(2) 实数取何值时该迭代法收敛最快. 解:该迭代公式可改写为b x A I x k k αα-+=+)(1,其对应的迭代矩阵为:⎪⎪⎭⎫⎝⎛+++=+=ααααα21231A I B , B 的特征矩阵为:)]1()][41([)21()2()31(||αλαλαλαααλλ+-+-=⎪⎪⎭⎫ ⎝⎛+--+-+-=-B I , 解得αλ411+=,αλ+=12,41,0.4()max{|14|,|1|}1,0.4014,0,B ααραααααα--<-⎧⎪=++=+-<<⎨⎪+>⎩(1)1)(<B ρ,即⎩⎨⎧<+<+1|1|1|41|αα,解得021<<-α,该迭代法收敛.(2)在021<<-α上,当4.0-=α时,)(B ρ达到最小,该迭代法收敛最快.3.9 用SOR 迭代法解线性方程1233.21141 3.71 4.511 4.25x x x ⎛⎫⎛⎫⎛⎫ ⎪ ⎪ ⎪= ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭, 取初始向量0[0,0,0]Tx =, 1.25ω=,迭代三次,并讨论其收敛性. 解:SOR 迭代公式:⎪⎪⎪⎩⎪⎪⎪⎨⎧--+-=--+-=--+-=++++++)5(2.4)1()5.4(7.3)1()4(2.3)1()1(2)1(1)(3)1(3)(3)1(1)(2)1(2)(3)(2)(1)1(1k k k k k k k k k k k k x x x x x x x x x x x x ϖϖϖϖϖϖ 取初始向量0[0,0,0]Tx =, 1.25ω=,迭代三次,kk x 1k x 2 kx 31 1.56250.992398649 0.727708736 2 0.499958053 0.857418315 0.902186992 3 0.7501646640.747688781 0.816758774]58774781,0.81674,0.7476880.75016466[)3(=x因A 为对称正定矩阵,10)(<=A ρ,SOR 迭代法必收敛.3.11 用SOR 迭代法解线性方程组123410114140143x x x -⎛⎫⎛⎫⎛⎫ ⎪ ⎪ ⎪--= ⎪ ⎪ ⎪ ⎪ ⎪ ⎪--⎝⎭⎝⎭⎝⎭其精确解*11[,1,]22Tx =-,分别取 1.03ω=,1ω=, 1.1ω=,要求当*5||||10kx x -∞-≤时迭代终止,并且对每一个ω值确定迭代次数. 解:用SOR 迭代公式:(1)()()112(1)()(1)()2213(1)()(1)332(1)[1]4(1)[4]4(1)[3]4k k k k k k k k k k x x x x x x x x x x ϖωϖωϖω+++++⎧=-++⎪⎪⎪=-+++⎨⎪⎪=-+-+⎪⎩(1) 取初值向量0[0,0,0]Tx =,当 1.03ω=时k错误!1kx2k x 3k x0 01 0.25751.09630625 -0.490201141 2 0.532073859 1.007893038 -0.498261509 3 0.501070241 1.000486458 -0.499926892 4 0.500093156 1.000028219 -0.499994927 5 0.500004472 1.000001611 -0.499999737 60.500000281 1.000000092 -0.4999999846*5||||0.00000028110x x -∞-=≤,迭代6次后得到满足精度要求的根:]999984092,-0.4991,1.0000000.50000028[6=x(2) 取初值向量0[0,0,0]Tx =,当1ω=时k错误!1kx2k x 3k x0 0 01 0.251.0625 -0.484375 2 0.515625 1.0078125 -0.498046875 3 0.501953125 1.000976563 -0.499755859 4 0.500244141 1.00012207 -0.499969482 5 0.500030518 1.000015259 -0.499996185 6 0.500003815 1.000001907 -0.499999523 70.500000477 1.000000238 -0.499999947*5||||0.00000047710x x -∞-=≤,迭代7次后得到满足精度要求的根:]99994238,-0.4997,1.0000000.50000047[7=x(3) 取初值向量0[0,0,0]Tx =,当 1.1ω=时k错误!1kx2k x 3k x0 010.275 1.175625 -0.5017031252 0.570796875 1.001438281 -0.499434163 0.49331584 0.998173634 -0.500558835 4 0.500166165 1.000074653 -0.499923587 5 0.500003913 1.000014624 -0.500003626 0.50000363 0.999998541 -0.5000000397 0.499999236 0.999999925 -0.5000000177*5||||0.00000076436110x x -∞-=≤,迭代7次后满足精度要求.3.12 考虑迭代法,...)1,0(1=+=+k f Bx x k k其中⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛-=021212102121210B ,⎪⎪⎪⎪⎪⎭⎫ ⎝⎛--=21121f 证明:该迭代法收敛,取初始向量0[0,0,0]Tx =,计算4x . 证:B 的特征矩阵为3212121212121||λλλλλ=⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛-----=-B I 0)(=B ρ,该迭代法收敛.该迭代法的迭代公式为:⎪⎪⎪⎩⎪⎪⎪⎨⎧-+=++=--=+++21212112121212121211331123211k k k kk k k k k x x x x x x x x x 取初始向量0[0,0,0]Tx =,迭代四次:k错误!1kx2k x 3k x0 0 0 0 1 -0.5 1 -0.5 2 0.353553391 0.5 -0.353553391 3 0 1 0 40 1 0 故]0,1,0[)4( x。

数值计算方法 线性方程组迭代法

数值计算方法 线性方程组迭代法
0.2 0.2 0
取初值x (0) (0,0,0)T 代入迭代式
x(1) Bx (0) g (7.2,8.3,8.4)T x(2) Bx(1) g (9.17,10.70,11.50)T ,如此下去, x(9) Bx (1) g (10.9994 ,11.9994 ,12.9992 )T
No e
Gauss-Seidel yes 迭代法的算法框图
输出k,xi(i=1,---,n)结束
例3. 用Gauss Seidel迭代法解方程组
3xx1 12xx22
2 1
精确到3位有效数字。
解 Gauss Siedel迭代格式为
x (k 1) 1
x (k 1) 2
(2 x2(k) ) / 3 (1 x1(k1) ) / 2
,
k
0,1,
2,
取x1(0)
0,
x (0) 2
0, 计算结果如下:
k0 1
2
3
4
5
x (k) 1
0
x (k) 2
0
0.66667 0.61111 0.60185 0.60031 0.60005 0.16667 0.19445 0.19908 0.19985 0.19975
因而
x* 1
0.600,
x* 2
x1(1)
1 10
(
x2
(0)
2x3(0)
b1)
1 72 10
7.2000
x2
(1)
1 10
(
x1(1)
2x3(0)
b2 )
9.0200
x3
(1)
1 5
(
x1(1)
x2 (1)

数值分析--第三章--迭代法

数值分析--第三章--迭代法

数值分析--第三章--迭代法迭代⼀般⽅程:本⽂实例⽅程组:⼀.jacobi迭代法从第i个⽅程组解出xi。

线性⽅程组Ax=b,先给定⼀组x的初始值,如[0,0,0],第⼀次迭代,⽤x2=0,x3=0带⼊第⼀个式⼦得到x1的第⼀次迭代结果,⽤x1=0,x3=0,带⼊第⼆个式⼦得到x2的第⼀次迭代结果,⽤x1=0,x2=0带⼊第三个式⼦得到x3的第⼀次迭代结果。

得到第⼀次的x后,重复第⼀次的运算。

转化成⼀般的形式:(其中L是A的下三⾓部分,D是A的对⾓元素部分,U 是上三⾓部分)得到迭代公式:其中的矩阵B和向量f如何求得呢?其实,矩阵B的计算也很简单,就是每⾏的元素/该⾏上的对⾓元素⼆.Gauss-Seidel迭代法【收敛速度更快】这个可以和jacobi法对⽐进⾏理解,我们以第⼆次迭代为例(这⾥的第⼀次迭代结果都⽤⼀样的,懒得去换)从上表对⽐结果可以看出,Jacobi⽅法的第⼆次迭代的时候,都是从第⼀次迭代结果中,获取输⼊值。

上⼀次迭代结果[2.5,3.0,3.0],将这个结果带⼊上⾯式⼦1,得到x1=2.88,;将[2.5,3.0,3.0]替换成[2.88,3.0,3.0]带⼊第⼆个式⼦的运算,这⾥得到x2=1.95,所以把[2.88,3.0,3.0]替换成[2.88,1.95,3.0]输⼊第三个式⼦计算X3=1.0.这就完成了这⼀次的迭代,得到迭代结果[2.88,1.95,1.0],基于这个结果,开始下⼀次迭代。

特点:jacobi迭代法,需要存储,上⼀次的迭代结果,也要存储这⼀次的迭代结果,所以需要两组存储单元。

⽽Gauss-Seidel迭代法,每⼀次迭代得到的每⼀个式⼦得到的值,替换上⼀次迭代结果中的值即可。

所以只需要⼀组存储单元。

转化成⼀般式:注意:第⼆个式⼦中的是k+1次迭代的第⼀个式⼦的值,不是第k次迭代得值。

计算过程同jacobi迭代法的类似三.逐次超松弛法SOR法上⾯仅仅通过实例说明,Jacobi和Seidel迭代的运算过程。

第三章 解线性方程组的迭代法

第三章  解线性方程组的迭代法

(3 .4 )
, k 1, 2 , 3 ,
式(3.4)称为Gauss-Seidel迭代法,简称为G-S迭代法.
G-S迭代法也可记为
xi
( k 1)

1 a ii
( b i a ij x
j 1
i 1
( k 1)
j
a ij x
j i 1
n
(k )
j
)
, i 1, 2 , n , k 0 ,1, 2 ,
则有
A=D-L-U
于是线性方程组 Ax=b 可写成 (D-L-U)x=b 等价于 Dx=(L+U)x+b 或 x=D-1(L+U)x+D-1b
由此建立J迭代法迭代公式
x(k+1)=D-1(L+U)x(k)+D-1b 或写成
x(k+1)=Bx(k)+g 其中
1 B D (L U ) 0 a 21 a 22 a n1 a nn a 12 a 11 0 an2 a nn a1n a 11 a2n a 22 0
可见 ,J迭代法的迭代矩阵为
B 0 a 21 a 22 a n1 a nn
bn a nn )
T

a 12 a 11 0 a n2 a nn



a 1n a 11 a 2n a 22 0
若记
从而得迭代公式
a 13 ( k ) a 1n ( k ) a 12 ( k ) b1 ( k 1) x x2 x3 xn 1 a 11 a 11 a 11 a 11 a 23 ( k ) a 2n (k ) a 21 ( k ) b2 ( k 1) x1 x3 xn x 2 a 22 a 22 a 22 a 22 a n1 ( k ) a n2 (k ) a nn 1 ( k ) bn ( k 1) x1 x2 x n 1 x n a nn a nn a nn a nn

数值计算方法-第3章--线性方程组的解法PPT课件

数值计算方法-第3章--线性方程组的解法PPT课件

个顺序主子式
a a (1)
(1)
11
12
Dk
a(1) 21
a(1) 22
a(1) 1k
a(1) 2k
0
(k 1, 2,..., n 1).
a a (1)
(1)
k1
k2
a(1) kk
.
13
顺序Gauss消去法计算过程中的 akk(k) 称为主元素,在 第k步消元时要用它作除数,则可能会出现以下几种情况
.
是原方程组 Ax=b 的解向量。
27
对于
Ly =b
1

l21
1
l31
l32 1
y1 b1
y2
b2
y3
b3
ln1 ln2 lnn1 1 yn bn
.
解得
y1 yk
b1 bk
k 1 i 1
lki
yi
,
k 2,3,, n
28
对于 Ux =y
u11 u12 u1n x1 y1
2x3 6

x1 6 (x2 x3 ) 1
x2 x3 5 / 4 2
x3 (6) / (2) 3
用x3, x2的值求x1 把x3的值代入②求x2
.
8
从下向上逐步求解
对应的增广矩阵的变化
1 1 1 6 1 1 1 6
( A | b) 0
4
1 5 0
4
1
5
2 2 1 1 0 4 1 11
0.8334
5.910
12.10
0.0120 0.0100 0.1670 0.6781
3200
1200
4.200 981.0
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
m
lim xi (k) xi
6
向量序列与矩阵序列的收敛性 矩阵序列的收敛条件
(1)定义 : 设 A k 为n阶方阵序列,A为n阶方阵。如果 lim || A( k ) A || 0 其中 为矩阵范数,则称矩阵序列 A(k) 收敛于矩阵A , 记作
m k
(1)什么叫向量序列收敛?矩阵序列收敛?

为迭代法的收敛性奠定理论基础
(2)怎样建立迭代公式?

(方程组的同解变形)
为迭代公式寻找途径
(3)向量序列收敛的条件是什么?

为判断“是否收敛”寻找到可行的方法
(4)怎样估计误差?

确定数值求解时什么时候终止
5
向量序列与矩阵序列的收敛性 向量序列的收敛条件
11
n=4的Jacobi迭代法
a11 x1 a12 x2 a13 x3 a14 x4 b1 a x a x a x a x b 21 1 22 2 23 3 24 4 2 a31 x1 a32 x2 a33 x3 a34 x4 b3 a41 x1 a42 x2 a43 x3 a44 x4 b4
说,仅适于系数矩阵阶数不太高的问题,其工作 量较小,但程序较复杂。 低阶稠密的线性方程组用直接法 ( 如高斯消去法 和三角分解法)。 迭代法主要用于某些系数矩阵稀疏且阶数较高的 问题,一般来说,程序较为简单,但工作量有时 较大。 大型稀疏非带状的线性方程组 (n很大, 且零元素很多,如偏微方程数值解产生的线性方 程组,n≥104),零元素多,适合用迭代法。
(1)定义3.1 : 设 x (k ) 为R n中的向量序列,x R n ,如果 lim || x ( k ) x || 0, 其中 向量范数,则称向量序列 x (k ) 收敛于向量x,记为
m k
lim x (k ) x。
(2)定理3. 1: R n中的向量序列 x (k) 收敛于R n中的向量x 当且仅当
接着往下计算到第N次迭代
实际计算时,迭代法中止条件
max | xi | max | x
1 i n 1 i n
( k 1 ) i
x
(k ) i
|
其中 为给定的要求精度.
20
3.3 高斯-赛德尔(Gauss-Seidel)迭 代法
算法3.2
21
Gauss-Seidel迭代法的计算过程如下:
k 0,1,2,
已知 x ( 0 )
(0) (k ) x1 x1 (0) (k ) x2 x2 (k ) ( 0 ) 用上述迭代公式可算得 x ( k ) x3 x3 x(0) x(k ) 4 4 k 1,2,13

将方程组改写成如下等价形式
0 . 1 x 2 0 .2 x 3 7 .2 x1 0 .2 x 3 8 . 3 x2 0.1 x1 x 0 .2 x 0 .2 x 8 .4 3 1 2
18
Jacobi迭代法计算公式为
( k 1 ) (k ) (k ) x1 0.1 x2 0.2 x3 7.2 ( k 1 ) (k ) (k ) 0.1 x1 0.2 x3 8.3 x2 ( k 1 ) (k ) (k ) x 0 . 2 x 0 . 2 x 8.4 1 2 3
即向量 x 是 方程 Ax=b 的解. 单步定常线性迭代法产生的向量序列若收敛则 必收敛到原线性方程组的解.
10
Jacobi迭代法的计算过程如下: 不改变,故可以事先调整好 A 使得
aii 0,否则 A不可逆。
(0) (0) 1.输入A (aij ), b (b1 , , bn ), 维数n, x (0) ( x1(0) , x2 , , xn ),
j 1 j i
4.若 x x (0) , 输出x, 停机;否则转5。 5.若k N , 置k 1 k , xi xi(0) (i 1, 2, , n), 转3; 否则,输出失败信息,停机。 评价:公式简单,每迭代一次只需计算一次矩阵和向量 的乘法,不改变M 的稀疏性,需两组工作单元,存x ( k ) , x ( k 1) 。
即得到解方程组的雅可比迭代公式:
x
( k 1 ) i
1 bi aii
aij x j 1 , j i
n
(k ) j

i 1,2,, n
16
Jacobi迭代法的矩阵表示 设D为由A的对角线元素构成的对角矩阵
Ax b Dx ( D A) x b x ( I D A) x D b
n=4的Jacobi迭代法矩阵表示
x
( k 1)
Bx
0
(k )
g
a14 a11 a24 a22 a34 a33 0
0 a a 21 22 B a31 a33 a41 a44
a12 a11 a32 a33 a42 a44
实际计算时,应根据问题的特点和要求来决定方 法的取舍。 3
求解 A x b, A R
迭代法
研究 内容:
nn
det( A) 0
从一个初始向量出发,按照一定的递推 格式,产生逼近方程组的近似解序列。
如何建立迭代格式? 向量序列的收敛条件?
收敛速度? 误差估计?
4

需解决的关键问题:
把方程组改写成如下等价形式
Ax b
x1 (b1 a12 x2 a13 x3 a14 x4 ) / a11 x (b a x a x a x ) / a 2 2 21 1 23 3 24 4 22 x3 (b3 a31 x1 a32 x2 a34 x4 ) / a33 x4 (b4 a41 x1 a42 x2 a43 x3 ) / a44
(0) (0) (0) 1.输入A ( aij ), b (b1 , , bn ), 维数n, x (0) ( x1 , x2 , , xn ),
, 最大容许迭代次数N .
2.置k 1. 3.计算 x1 (b1 a1j x (0) j ) / a11
j 2 i 1 n
xi
(k+1)
ai ( i 1) (k) ai ( i 1) (k) ai1 (k) ain (k) bi x1 x i 1 x i 1 xn , aii aii aii aii aii
( i 1,2,, n)
x
(k )
x , x ,, x
xi (bi aij x j
j 1 n 1 j 1
j i 1
a
n
ij
x (0) j ) / aii
(i 2, , n 1)
xn (bn anj x j ) / ann 4.若 x x (0) , 输出x, 停机;否则转5。 5.若k N , 置k 1 k , xi xi(0) (i 1, 2, , n), 转3; 否则,输出失败信息,停机。 评价:与Jacobi相比,Gauss - Seidel 只需一组工作单元存放近似解。
(k ) 1 (k ) 2
(k ) T n
15

Jacobi迭代法
aij x j bi , j 1
n
i 1,2,, n
从上式中分离出变量 xi , 将它改写成
1 xi bi aii aij x j j 1 , j i
n
i 1,2,, n
收敛性条件
9
以此来产生近似向量序列 x(1), x(2), ...
(k ) x x*. 当k充分大时,
若由迭代公式
x
lim x
k
( k 1)
Bx
k
(k )
g
产生的向量序列 { x(k)} 收敛于向量 x,则
( k 1)
lim Bx
(k )
g x Bx g
3.2 雅克比(Jacobi )迭代法 迭代过程中,A 的元素
精度 , (最大容许迭代次数 N. k)完全计算 必须等 X 2.置k 1. X(k+1),因此 好了才能计算 n 需要两组向量存储。 3.对i 1, 2, , n xi (bi aij x (0) j ) / aii
假设初始向量取 x(0)=(0, 0, 0)T. 第一次迭代 x(1) (7.2, 8.3, 8.4)T
( 2) x1 0.1 8.3 0.2 8.4 7.2 9.71
第二次迭代
x
( 2) 2
0.1 7.2 0.2 8.4 8.3 10.7
19
( 2) x3 0.2 7.2 0.2 8.3 8.4 11.50
x Bx g
12
n=4的Jacobi迭代法计算公式
x1( k 1) (b1 a12 x2( k ) a13 x3( k ) a14 x4( k ) ) / a11 ( k 1 ) (k ) (k ) (k ) (b2 a21 x1 a23 x3 a24 x4 ) / a22 x2 ( k 1 ) (k ) (k ) (k ) x ( b a x a x a x ) / a33 3 3 31 1 32 2 34 4 ( k 1 ) (k ) (k ) (k ) (b4 a41 x1 a42 x2 a43 x3 ) / a44 x4
a13 a11 a23 a22 0 a43 a44
相关文档
最新文档