数值分析7-3(迭代法的加速)
- 格式:ppt
- 大小:282.00 KB
- 文档页数:12
数值分析--第6章解线性方程组的迭代法第6章 解线性方程组的迭代法直接方法比较适用于中小型方程组。
对高阶方程组,即使系数矩阵是稀疏的,但在运算中很难保持稀疏性,因而有存储量大,程序复杂等不足。
迭代法则能保持矩阵的稀疏性,具有计算简单,编制程序容易的优点,并在许多情况下收敛较快。
故能有效地解一些高阶方程组。
1 迭代法概述迭代法的基本思想是构造一串收敛到解的序列,即建立一种从已有近似解计算新的近似解的规则。
由不同的计算规则得到不同的迭代法。
迭代法的一般格式(1)()(1)()(,,,),0,1,k k k k m kF k +--==x x x x式中(1)k +x 与()(1)(),,,k k k m --x x x 有关,称为多步迭代法。
若(1)k +x 只与()k x 有关,即(1)()(),0,1,k k kF k +==x x称为单步迭代法。
再设kF 是线性的,即(1)(),0,1,k kk kk +=+=x B x f式中n nk ⨯∈B R ,称为单步线性迭代法。
kB 称为迭代矩阵。
若k B 和kf 与k 无关,即(1)(),0,1,k k k +=+=x Bx f称为单步定常线性迭代法。
本章主要讨论具有这种形式的各种迭代方法。
1.1 向量序列和矩阵序列的极限由于nR 中的向量可与nR 的点建立——对应关系,由点列的收敛概念及向量范数的等价性,可得到向量序列的收敛概念。
定义6.1 设(){}k x 为n R 中的向量序列,nx R ∈,如果()lim 0k k x x →∞-=其中为向量范数,则称序列(){}k x 收敛于x ,记为()lim k k x x →∞=。
定理6.1 nR 中的向量序列(){}k x 收敛于nR 中的向量x 当且仅当()lim (1,2,,)k i i k x x i n →∞==其中()()()()1212(,,,),(,,,)k k k k T Tnnx x x x x x x x ==。
第4章 非线性方程与非线性方程组的迭代解法--------学习小结一、本章学习体会本章我们主要学习了非线性方程的几种解法,主要有对分法、简单迭代法、steffensen 迭代法、Newton 法、割线法等。
这几种方法都有其思想,并且它们的思想彼此之间有一定的联系。
本章的思路大致可以理解为:1.如何选取迭代公式;2.如何判断迭代公式的收敛速度;3.如何进行迭代公式的修正,以加速收敛;4.如何选取最适合的迭代方法 。
二、本章知识梳理具体求根通常分为两步走,第一步判断根是否存在,若存在,确定根的某个初始近似值;第二步,将初始近似值逐步加工成满足精度要求的结果。
求初始近似值,即确定根的大致区间(a, b ),使(a, b )内恰有方程的一个根。
本章的学习思路:针对一种迭代方法,找出迭代公式,并判断其收敛性,一般选取收敛速度最快的迭代公式,所以自然的提出了如何使收敛加速的问题。
4.1非线性方程的迭代解法非线性方程的迭代解法有:对分法、简单迭代法、steffensen 迭代法、Newton 法、割线法等。
4.1.1对分法设()[]()()0,<∈b f a f b a C x f 且,根据连续函数的介值定理,在区间()b a ,内至少存在有一个实数s ,使()0=s f 。
现假设在()b a ,内只有一个实数s ,使()0=s f 并要把s 求出来,用对分法的过程: 令b b a a ==00, 对于M k ,....,2,1,0=执行计算2kk k b a x +=若()ηε≤≤-k f a b k k 或,则停止计算取k x s ≈否则转(3)()()k k k k k k b b a a a f x f ==<++11,,0则令()()k k k k k k b b x a a f x f ==>++11,,0则令 若M k =则输出M 次迭代不成功的信息;否则继续。
对分法的局限:对分法只能求实根,而且只能求单根和奇数重根,不能求偶数根和复数根4.1.2简单迭代法及其收敛性迭代法是一种逐次逼近法,用某个固定公式反复校正根的近似值,使之逐步精确化,最后得到满足精度要求的解。
§2简单迭代法——不动点迭代(iterate)迭代法是数值计算中的一类典型方法,被用于数值计算的各方面中。
一、简单迭代法设方程f(x)=0 (3)在[a,b]区间内有一个根*x ,把(3)式写成一个等价的隐式方程x=g(x) (4)方程的根*x 代入(4)中,则有)(**=x g x (5)称*x 为g的不动点(在映射g下,象保持不变的点),方程求根的问题就转化为求(5)式的不动点的问题。
由于方程(4)是隐式的,无法直接得出它的根。
可采用一种逐步显式化的过程来逐次逼近,即从某个[a,b]内的猜测值0x 出发,将其代入(4)式右端,可求得)(01x g x =再以1x 为猜测值,进一步得到)(12x g x =重复上述过程,用递推关系——简单迭代公式求得序列}{k x 。
如果当k →∞时*→x x k ,}{k x 就是逼近不动点的近似解序列,称为迭代序列。
称(6)式为迭代格式,g(x)为迭代函数,而用迭代格式(6)求得方程不动点的方法,称为简单迭代法,当*∞→=x x k k lim 时,称为迭代收敛。
构造迭代函数g(x)的方法:(1)=x a x x -+2,或更一般地,对某个)(,02a x c x x c -+=≠;(2)x a x /=; (3))(21xa x x +=。
取a=3,0x =2及根*x =1.732051,给出三种情形的数值计算结果见表表 032=-x 的迭代例子问题:如何构造g(x),才能使迭代序列}{k x 一定收敛于不动点?误差怎样估计?通常通过对迭代序列}{k x 的收敛性进行分析,找出g(x)应满足的条件,从而建立一个一般理论,可解决上述问题。
二、迭代法的收敛性设迭代格式为),2,1,0()(1 ==+k x g x k k而且序列}{k x 收敛于不动点*x ,即∞→→-*k x x k (0时)因而有)3,2,1(1 =-≤-*-*k xx x x k k (7)由于),(),)((11*-*-*∈-'=-x x x x g x x k k k ξξ当g(x)满足中值定理条件时有),(),)((11*-*-*∈-'=-x x x x g x x k k k ξξ (8)注意到(8)式中只要1)(<<'L g ξ时,(7)式成立.经过上述分析知道,迭代序列的收敛性与g(x)的构造相关,只要再保证迭代值全落在[a,b]内,便得:假定迭代函数g(x)满足条件(1) 映内性:对任意x ∈[a,b]时,有a ≤g(x) ≤b ;(2) 压缩性:g(x)在[a,b]上可导,且存在正数L<1,使对任意 x ∈[a,b],有L x g <')( (9)则迭代格式)(1k k x g x =+对于任意初值0x ∈[a,b]均收敛于方程x=g(x)的根,并有误差估计式011x x LL x x kk --≤-*(10)证明 :收敛性是显然的。
6.5迭代法的加速一、教学目标及基本要求通过对本节的学习,使学生掌握方程求根迭代法的加速。
二、教学内容及学时分配本章主要介绍线性方程求根的迭代法的加速方法。
要求1.了解数值分析的研究对象、掌握误差及有关概念。
2.正确理解使用数值方法求方程的解的基本思想、数学原理、算法设计。
3.了解插值是数值逼近的重要方法之一,正确理解每一种算法的基本思想、计算公式、算法设计、程序框图设计和源程序。
4.掌握数值积分的数学原理和程序设计方法。
5.能够使用数值方法解决一阶常微分方程的初值问题。
6.理解和掌握使用数值方法对线性方程组求解的算法设计。
三、教学重点难点1.教学重点:非线性方程迭代收敛性与迭代加速、牛顿法。
2.教学难点:迭代的收敛性。
四、教学中应注意的问题多媒体课堂教学为主。
适当提问,加深学生对概念的理解,迭代加速的算法实现。
五、教案正文6.1 迭代公式的加工迭代过程收敛缓慢,计算量将很大,需要进行加速。
设 x k是根x*的某个近似值,用迭代公式校正一次得x k 1x k,假设' ( x)在所考察得范围内变化不大,其估计值为L ,则有:x *xk 1L( x * x k )x * 1 L xk 1L x k1 1 L有迭代公式 x k 11 x k 1Lx k ,是比 x k 1 更好的近似根。
这样加工后1 L1 L的计算过程为:迭代 x k 1 x k改进 x k 11L x kx k 11L1 L合并的 x k 11 [ ( x k )Lx k ]1 L例 3 P1336.2 埃特金算法上述加速方法含有导数'x ,不便于计算。
设将迭代值 x k 1x k 再迭代~x k 1 ,由于 x *~L ( x *x k1)一次,又得 x k 1xk 1又 x * x k 1L( x *x k ) ,消去 L 得x * xk 1x *x k~ ~x k 1 ) 2x *( x k 1*~x *xk 1xk 1~2x k 1x kx x k 1xk 1计算过程如下:迭代 x k1x k~1xk 1迭代 x k~~1x k 1 ) 2改进 x k( x k1x k1~2x k 1 x kx k 1小结:这节课我们主要介绍了线性方程组迭代法加速的基本思想及其常用的几种迭代方法。
数值分析课程实验报告实验名称 线性方程组的迭代解法Ax b =的系数矩阵对角线元素容许误差。
雅可比(Jacobi )迭代法解方程组的算法描述如下:任取初始向量(0)(0)1(xx =1+,并且 1,2,...,n ,计算 11(ni j ii j ib a a =≠-∑()k x ,结束;否则执行④,则不收敛,终止程序;否则转② 迭代法的算法描述)迭代法中,如果当新的分量求出后,马上用它来代替旧的分量,则可能会更快地接近方程组的准确解。
基于这种设想构造的迭代公式,n ,k = (2)算法可相应地从雅可比(Jacobi )迭代法改造得到(Gauss-Seidel)迭代得到的值进一()()()1((1k i ii k k i i x b a x x ωω==+-1,2,,n ,2,k =(3)为松弛因子(显然当1ω=塞德尔迭代公式) ()k ix 通常优于旧值(1)k ix -,在将两者加工成松弛值时,自然要求松弛因子1ω>,以尽量发挥新值的优势,这类迭代就称为逐次超松弛迭代法。
SOR 迭代的关键在于选取合适的松弛因子,松弛因子的取值对收敛速度影响很大,但如何选取最佳松弛因子的问题,至今仍未有效解决,在实际计算时,通常依据系数矩阵的特点,并结合以往的经验选取合适的松弛因子。
练习与思考题分析解答(0)(1,1,1,1)x =[ -0.999976, -0.999976, -0.999976, -0.999976]x =[ -0.99999, -0.999991, -0.999992, -0.999993]x =塞德尔迭代算法的收敛速度要比雅可比迭代算法的收敛速度快SOR 迭代实质上是高斯原理和基本方法相同。
如果选择合适的松弛因子,它能够加快收敛速度。
SOR 迭代算法更加普通,当选取一个合适的松弛因子后收敛速度明显加快。
迭代算法将前一步的结果[ -0.99999, -0.999991, -0.999992, -0.999993]x =[ -0.999992, -0.999993, -0.999994, -0.999995]x =[ -0.999993, -0.999994, -0.999995, -0.999995]x =[ -0.999992, -0.999993, -0.999994, -0.999995]x =[ -0.999999, -1.0, -1.0, -1.0]x =[ -0.999999, -1.0, -1.0, -1.0]x =因为为了保证迭代过程收敛,松弛因子1.3左右。
【关键字】分析数值分析实验报告(3)学院:信息学院班级:计算机0903班姓名:王明强学号:课题三线性方程组的迭代法一、问题提出1、设线性方程组=x= ( 1, -1, 0, 1, 2, 0, 3, 1, -1, 2 )2、设对称正定阵系数阵线方程组=x = ( 1, -1, 0, 2, 1, -1, 0, 2 )3、三对角形线性方程组=x= ( 2, 1, -3, 0, 1, -2, 3, 0, 1, -1 )试分别选用Jacobi 迭代法,Gauss-Seidol迭代法和SOR方法计算其解。
二、要求1、体会迭代法求解线性方程组,并能与消去法做以比较;2、分别对不同精度要求,如由迭代次数体会该迭代法的收敛快慢;3、对方程组2,3使用SOR方法时,选取松弛因子=0.8,0.9,1,1.1,1.2等,试看对算法收敛性的影响,并能找出你所选用的松弛因子的最佳者;4、给出各种算法的设计程序和计算结果。
三、目的和意义1、通过上机计算体会迭代法求解线性方程组的特点,并能和消去法比较;gauss消去法是一种规则化的加减消元法。
它的基本思想是:通过逐次消元计算把需要求求解的线性方程转化成上三角形方程组,也就是把线性方程组的系数矩阵转化为上三角矩阵,从而使一般线性方程组求解转化为等价(同解)的上三角方程组的求解。
消去法是直接方法的一种。
优点:对于简单的方程组可以很快得出结果,计算中如果没有舍入误差,在稳定的方程组中容易得到精确解,理论上可以求解任何可以求出解得方程组。
缺点:数值有的时候不稳定(可采用列主元gauss消去法),既要消去,又要回代,算法实现起来比较复杂,不适用于大规模方程组。
迭代法是从某一取定的初始向量x(0)出发,按照一个适当的迭代公式,逐次计算出向量x(1),x(2),......,使得向量序列{ x(k)}收敛于方程组的精确解,这样,对于适当大的k,可取x(k)作为方程组的近似解。
优点:算法简单,程序易于实现,特别适用求解庞大稀疏线性方程组。
1 / 8数值分析实验六:解线性方程组的迭代法2016113 张威震1 病态线性方程组的求解1.1 问题描述理论的分析表明,求解病态的线性方程组是困难的。
实际情况是否如此,会出现怎样的现象呢?实验内容:考虑方程组Hx=b 的求解,其中系数矩阵H 为Hilbert 矩阵,,,1(),,,1,2,,1i j n n i j H h h i j n i j ⨯===+-这是一个著名的病态问题。
通过首先给定解(例如取为各个分量均为1)再计算出右端b 的办法给出确定的问题。
实验要求:(1)选择问题的维数为6,分别用Gauss 消去法、列主元Gauss 消去法、J 迭代法、GS 迭代法和SOR 迭代法求解方程组,其各自的结果如何?将计算结果与问题的解比较,结论如何?(2)逐步增大问题的维数(至少到100),仍然用上述的方法来解它们,计算的结果如何?计算的结果说明了什么?(3)讨论病态问题求解的算法1.2 算法设计首先编写各种求解方法的函数,Gauss 消去法和列主元高斯消去法使用实验5中编写的函数myGauss.m 即可,Jacobi 迭代法函数文件为myJacobi.m ,GS 迭代法函数文件为myGS.m ,SOR 方法的函数文件为mySOR.m 。
1.3 实验结果1.3.1 不同迭代法球求解方程组的结果比较选择H 为6*6方阵,方程组的精确解为x* = (1, 1, 1, 1, 1, 1)T ,然后用矩阵乘法计算得到b ,再使用Gauss 顺序消去法、Gauss 列主元消去法、Jacobi 迭代法、G-S 迭代法和SOR 方法分别计算得到数值解x1、x2、x3、x4,并计算出各数值解与精确解之间的无穷范数。
Matlab 脚本文件为Experiment6_1.m 。
迭代法的初始解x 0 = (0, 0, 0, 0, 0, 0)T ,收敛准则为||x(k+1)-x(k)||∞<eps=1e-6,SOR方法的松弛因子选择为w=1.3,计算结果如表1。