数值分析第二章
数值分析原理课件第二章
第二章 非线性方程数值解法在科学计算中常需要求解非线性方程()0f x = (2.1)即求函数()f x 的零点.非线性方程求解没有通用的解析方法,常采用数值求解算法.数值解法的基本思想是从给定的一个或几个初始近似值出发,按某种规律产生一个收敛的迭代序列0{}k k x +∞=,使它逐步逼近于方程(2.1)的某个解.本章介绍非线性方程实根的数值求解算法:二分法、简单迭代法、Newton 迭代法及其变形,并讨论它们的收敛性、收敛速度等.§2.1 二分法一、实根的隔离定义 2.1 设非线性方程(2.1)中的()f x 是连续函数.如果有*x 使*()0f x =,则称*x 为方程(2.1)的根,或称为函数()f x 的零点;如果有*()()()m f x x x g x =-,且()g x 在*x 邻域内连续,*()0g x ≠,m 为正整数,则称*x 为方程(2.1)的m 重根.当1m =时,称*x 为方程的单根.非线性方程根的数值求解过程包含以下两步(1) 用某种方法确定有根区间.称仅存在一个实根的有根区间为非线性方程的隔根区间,在有根区间或隔根区间上任意值为根的初始近似值;(2) 选用某种数值方法逐步提高根的精度,使之满足给定的精度要求.对于第(1)步有时可以从问题的物理背景或其它信息判断出根的所在位置,特别是对于连续函数()f x ,也可以从两个端点函数值符号确定出有根区间.当函数()f x 连续时,区间搜索法是一种有效的确定较小有根区间的实用方法,其具体做法如下设[,]a b 是方程(2.1)的一个较大有根区间,选择合适的步长()/h b a n =-,k x a kh =+,(0,1,,)k n = .由左向右逐个计算()k f x ,如果有1()()0k k f x f x +<,则区间1[,]k k x x +就是方程的一个较小的有根区间.一般情况下,只要步长h 足够小,就能把方程的更小的有根区间分离出来;如果有根区间足够小,例如区间长度小于给定的精度要求,则区间内任意一点可视为方程(2.1)的根的一个近似.例2.1 确定出方程32()3430f x x x x =-+-=的一个有根区间. 解 由22()3643(1)10f x x x x '=-+=-+>知()f x 为(,)-∞∞上的单调递增函数,进而()f x 在(,)-∞∞内最多只有一个实根.经计算知(0)0f <,(2)0f >,所以()0f x =在区间[0,2]内有惟一实根.如果希望将有根区间再缩小,可以取步长0.5h =,在点0.5x =,1x =, 1.5x =计算出函数值的符号,最后可知区间[1.5,2]内有一个实根.二、二分法二分法是求非线性方程实根近似值的最简单的方法.其基本思想是将有根区间分半,通过判别函数值的符号,逐步缩小有根区间,直到充分逼近方程的根,从而得到满足一定精度要求的根的近似值.设()f x 在区间[,]a b 上连续,()()0f a f b <,且方程(2.1)在区间(,)a b 内有惟一实根*x .记1a a =,1b b =,中点111()/2x a b =+将区间11[,]a b 分为两个小区间11[,]a x 和11[,]x b ,计算函数值1()f x ,根据如下3种情况确定新的有根区间:(1) 如果1()0f x =,则1x 是所要求的根;(2) 如果11()()0f a f x <,取新的有根区间2211[,][,]a b a x =; (3) 如果11()()0f x f b <,取新的有根区间2211[,][,]a b x b =.新有根区间22[,]a b 的长度为原有根区间11[,]a b 长度的一半.对有根区间22[,]a b 施以同样的过程,即用中点222()/2x a b =+将区间22[,]a b 再分为两半,选取新的有根区间,并记为 33[,]a b ,其长度为22[,]a b 的一半(如图2.1所示).图2.1 二分法示意图重复上述过程,建立如下嵌套的区间序列1122[,][,][,][,]k k a b a b a b a b =⊃⊃⊃⊃其中每个区间的长度都是前一个区间长度的一半,因此[,]k k a b 的长度为11()2k k k b a b a --=-由*[,]k k x a b ∈和()/2k k k x a b =+,得*11()()22k k k k x x b a b a -≤-=-当k →∞时,显然,有*k x x →.总结得到如下收敛定理:定理 2.1 设()f x 在隔根区间[,]a b 上连续,且()()0f a f b <,则由二分法产生的序列0{}k k x +∞=收敛于方程(2.1)在[,]a b 上的根*x ,并且有误差估计*1()(1,2,)2k kx x b a k -≤-= (2.2) 设预先给定根*x 的绝对误差限为ε,要求*k x x ε-≤,只要1()2k b a ε-≤成立,这样求得对分次数ln()ln ln 2b a k ε--≥. (2.3)取k 为大于(ln()ln )/ln 2b a ε--的最小整数.此时k x 是方程(2.1)的满足精度要求的根近似值.注:由于舍入误差和截断误差存在,利用浮点运算不可能精确计算函数值,二分法中的判断()0k f x =几乎不可能满足,取而代之为判断条件0()k f x ε<,其中0ε为根近似值的函数值允许误差限.总结以上内容,给出如下算法 算法2.1 (二分法)输入 端点,a b 、根的绝对误差限ε、根近似值的函数值允许误差限0ε; 输出 近似解c 或失败信息;Step 1 用公式(2.3)计算最大迭代次数k ; Step 2 对1,,n k = 循环执行Step 3~5; Step 3 ()/2c a b =+,计算()f c ;Step 4 若0()f c ε<,则输出c ,end ; Step 5 若()()0f c f b <,则a c =,否则b c =.例 2.2 用二分法求32()4100f x x x =+-=在[1,2]上的根*x 的近似值,要求*31102k x x --<⨯.解 由于在区间[1,2]上,(1)5f =-,(2)14f =,2()38(38)0f x x x x x '=+=+>,故()0f x =在[1,2]上有惟一实根*x .确定循环次数为11k =,利用二分法计算结果见表2.1.二分法具有如下特点(1) 优点:计算简单,对函数()f x 的光滑性要求不高,只要它连续,且在两端的函数值异号,算法收敛就可以保证;(2) 缺点:只能求单实根和奇数重实根,收敛较慢,与1/2为公比的等比级数相同. 当函数()f x '连续时,方程(2.1)的实重根可转换为()0()f x f x ='的实单根. 一般在求方程根近似值时不单独使用二分法,而常用它为其它数值方法提供初值.§2.2 简单迭代法简单迭代法是求解非线性方程根的近似值的一类重要数值方法.本节将介绍简单迭代法的基本思想、收敛条件、收敛速度以及相应的加速算法.一、简单迭代法的基本思想简单迭代法采用逐步逼近的过程建立非线性方程根的近似值.首先给出方程根的初始近似值,然后用所构造出的迭代公式反复校正上一步的近似值,直到满足预先给出的精度要求为止.在给定的有根区间[,]a b 上,将方程(2.1)等价变形为()x x ϕ= (2.4)在[,]a b 上选取0x 作为初始近似值,用如下迭代公式1()k k x x ϕ+= (0,1,2,k = ) (2.5)建立序列0{}k k x +∞=.如果有*lim k k x x →∞=,并且迭代函数()x ϕ在*x 的邻域内连续,对式(2.5)两边取极限,得**()x x ϕ=因而*x 是(2.4)的根,从而也是(2.1)的根.称()x ϕ为迭代函数,所得序列0{}k k x +∞=为迭代序列.将这种求方程根近似值的方法称为简单迭代法,简称迭代法.例2.3 试用方程3()10f x x x =--=的不同形式的变形建立迭代公式,并试求其在1.5附近根的近似值.解 利用方程的变形建立如下4种迭代公式(1) 1k x + (2) 311k kx x +=-(3) 1k x += (4) 3112k k k x x x ++-=取初值0 1.5x =,迭代计算,结果见表2.2.例 2.3表明非线性方程的不同等价形式对应不同的迭代过程,从某一初值出发,有的迭代收敛快,有的收敛慢,甚至不收敛.那么迭代函数()x ϕ满足什么条件时才能保证迭代序列收敛? 迭代序列0{}k k x +∞=的误差如何估计? 怎样才能建立收敛速度快的迭代公式?定理2.2 若函数()x ϕ在区间[,]a b 上具有一阶连续导数,且满足条件 ① 对任意[,]x a b ∈,有()[,]x a b ϕ∈;② 存在常数L :01L <<,使得对任意[,]x a b ∈有()x L ϕ'≤成立. 则(1) 方程()x x ϕ=在[,]a b 上有惟一实根*x(2) 对任意0[,]x a b ∈,迭代公式(2.5)收敛,且*lim k k x x →∞=(3) 迭代公式(2.5)有误差估计式*11k k k Lx x x x L --≤-- (2.6) *101k k L x x x x L-≤-- (2.7)(4) **1*lim()k k kx x x x x ϕ+→∞-'=- (2.8) 证明 (1)构造函数()()g x x x ϕ=-,由条件①知()()0g a a a ϕ=-≤,()()0g b b b ϕ=-≥,因此()0g x =在[,]a b 上至少存在一个实根,又由条件②知当[,]x a b ∈时,()1()10g x x L ϕ''=-≥->,所以()0g x =在[,]a b 内存在惟一实根,即()x x ϕ=在[,]a b 内存在惟一实根,记为*x .(2) 由0[,]x a b ∈及条件①知,[,]k x a b ∈(1,2,)k = ,并且有1()k k x x ϕ+=,**()x x ϕ=,二者作差,并由微分中值定理得***1()()()()k k k k x x x x x x ϕϕϕξ+'-=-=- (1,2,k =(2.9) 其中,k ξ介于k x 与*x 之间.结合条件②,得**1k k x x L x x +-≤- (1,2,k =(2.10) 反复递推,有**2*1*1100k k k k x x L x x L x x L x x ++-≤-≤-≤-≤≤- , (1,2,)k =因01L <<,故*lim k k x x →∞=.(3) 由式(2.10)得***1111*1k k k k k k k k k k x x x x x x x x x x x x L x x +++++-=-+-≤-+-≤-+-从而*111k k k x x x x L+-≤-- (2.11) 又由于111()()()()k k k k k k k x x x x x x ϕϕϕη+--'-=-=-1k k L x x -≤- (1,2,)k = (2.12)其中k η介于k x 和1k x -之间.综合式(2.11)及式(2.12)得误差估计*11k k k Lx x x x L--≤--由式(2.12)反复递推,得111210k k k k k x x L x x L x x -----≤-≤≤-并代入式(2.6)得误差估计*11011kk k k L L x x x x x x L L--≤-≤--- (1,2,)k =(4) 由式(2.9)得*1*()k k k x x x x ϕξ+-'=-两端取极限,并注意到()x ϕ'的连续性和*lim k k x ξ→∞=(因为k ξ介于*x 与k x 之间),得**1*lim ()k k kx x x x x ϕ+→∞-'=-. 误差估计(2.6)称为后验误差估计,也称为误差渐进估计,误差估计(2.7)称为先验误差估计.定理2.2条件成立时,对任意0[,]x a b ∈,迭代序列均收敛,故称定理2.2为全局收敛性定理.下面讨论*x 邻近的收敛性,即局部收敛性.定理 2.3 设存在方程()x x ϕ=根*x 的闭邻域***(,)[,](0)U x x x δδδδ=-+>以及小于1的正数L ,使得()x ϕ'连续且()1x L ϕ'≤<.则对任意*0(,)x U x δ∈,迭代1()k k x x ϕ+=收敛.证明 由()x ϕ'在*(,)U x δ内连续,且有()1x L ϕ'≤<,则对任意*(,)x U x δ∈,有****()()()()x x x x x x L ϕϕϕϕηδδ'-=-=-≤<由定理2.2知迭代过程1()k k x x ϕ+=对任意初值*0(,)x U x δ∈均收敛.二、迭代法的收敛阶为刻画迭代法收敛速度的快慢,引进收敛序列的收敛阶概念.定义2.2 设迭代序列0{}k k x +∞=收敛到*x ,记*k k e x x =-,如果存在常数0c >和实数1p ≥,使得1limk pk ke c e +→∞= (2.13)则称序列0{}k k x +∞=是p 阶收敛的.当1p =时,称0{}k k x +∞=为线性收敛的,此时要求01c <<;1p >为超线性收敛.p 越大,序列0{}k k x +∞=收敛到*x 越快.c 称为渐进常数,c 越小,收敛越快.所以迭代法的收敛阶是对迭代法收敛速度的一种度量.显然,由定理2.2(4)知,当*()0x ϕ'≠时简单迭代法线性收敛,渐进常数*()c x ϕ'=.算法2.2 (简单迭代法)输入 初始值0x 、容许误差ε;输出 近似解1x 或失败信息;Step 1 对1,,n m = 循环执行Step 2~3; Step 2 10()x x ϕ=;Step 3 若10x x ε-<,则输出1x ,end ;否则01x x =,转向Step2.例 2.4 求方程()2lg 70f x x x =--=的最大实根的近似值,要求绝对误差不超过31102-⨯.解 (1)确定有根区间.方程等价形式为27lg x x -=作函数27y x =-和lg y x =的图形,如图2.2所示,知方程的最大实根在区间[3,4]内.(2)建立迭代公式,判别收敛性.将方程等价变形为1(lg 7)2x x =+迭代函数1()(lg 7)2x x ϕ=+,迭代公式11(lg 7)2k k x x +=+.由11()02ln10x xϕ'=⋅>,[3,4]x ∈,知()x ϕ在区间[3,4]内仅有一根.又(3) 3.74ϕ≈,(4) 3.80ϕ≈,所以,当[3,4]x ∈时,()[3,4]x ϕ∈.图2.2 函数27y x =-和lg y x =的图形因为 3.54max ()(3)0.07x L x ϕϕ≤≤''==≈,所以对于一切[3,4]x ∈有()(3)0.071x ϕϕ''≤≈<由定理2.2知,迭代法收敛.(3) 迭代计算.取0 4.0x =,有1=3.801030x ,2=3.789951x ,3=3.789317x ,4=3.789280x 因为343110 2x x --≤⨯,所以方程的最大根*4 3.789280x x ≈=.三、迭代法的加速对于收敛的迭代序列,理论上迭代次数足够多时,就可以使计算结果满足任意给定的精度要求.但在应用中,有的迭代过程收敛极为缓慢,计算量很大,因此研究迭代格式的加速方法是非常必要的.1. 线性收敛序列的Aitken 加速法设0{}k k x +∞=是一个线性收敛的序列,极限为*x .即有小于1的正数c 使得*1*limk k k x x c x x +→∞-=-由于它线性收敛,误差减少的速度较慢,值得采用加速技术.下面介绍Aitken 加速法.对充分大的k ,有*1*,k k x x c x x +-≈- *2*1k k x x c x x ++-≈-由上面两式得**12**1k k k k x x x x x x x x +++--≈--解得22*2112121()22k k k k k k k k k k k k x x x x x x x x x x x x x +++++++--≈=--+-+利用上式右端的值可定义另一序列0{}k k y +∞=,即得Aitken 加速公式2121()2k k k k k k kx x y x x x x +++-=--+ (2.14)它仍然收敛到*x ,但收敛速度更快.证明请参考文献[19]. 2. Steffensen 迭代法Aitken 加速方案是对任意线性收敛序列0{}k k x +∞=构建的,并不限定0{}k k x +∞=如何获得.将Aitken 加速方法用于简单迭代法产生迭代序列时,得到著名的Steffensen 迭代法,具体迭代公式如下21()()(0,1,2,)()2k k k k k s x t s k s x x x t s x ϕϕ+=⎧⎪==⎪⎨-⎪=-⎪-+⎩(2.15) 或者直接写成21(())(())2()k k k k k k k x x x x x x x ϕϕϕϕ+-=--+ (0,1,2k =可以证明Steffensen 迭代法在一定的条件下与原简单迭代法的迭代序列具有相同的极限,但Steffensen 迭代法收敛速度更快,可以达到二阶收敛.证明请参考文献[19].例2.5 对例 2.3用Steffensen 迭代法求方程根的近似值,要求811102k k x x -+-<⨯.解 (1) 简单迭代法 将原方程化成1(10/(4))x x =+,建立迭代公式121104k k x x +⎛⎫= ⎪+⎝⎭易验证该迭代公式在区间[1,2]上满足定理2.2的条件,产生的迭代序列收敛.(2) Steffensen 迭代法 加速公式为12122110410(0,1,2,)4()2k k k k k s x t k s s x x x t s x +⎧⎛⎫⎪= ⎪+⎪⎝⎭⎪⎪⎛⎫⎨==⎪⎪+⎝⎭⎪-⎪=-⎪-+⎩(1) 取初值0 1.5x =,简单迭代法和Steffensen 迭代法计算结果见表2.3.注意:Steffensen 迭代法每一迭代步的计算量大约是原简单迭代法计算量的两倍.§2.3 Newton 迭代法Newton 迭代法是求解非线性方程根的近似值的一种重要数值方法.其基本思想是将非线性函数()f x 逐步线性化,从而将非线性方程(2.1)近似地转化为一系列线性方程来求解.下面讨论其格式的构造、收敛性、收敛速度以及有关变形.一、Newton 迭代法的构造设k x 是方程(2.1)的某根的一个近似值,将函数()f x 在点k x 处作Taylor 展开2()()()()()()2!k k k k f f x f x f x x x x x ξ'''=+-+-取前两项近似代替()f x ,即用线性方程()()()0k k k f x f x x x '+-=近似非线性方程(2.1).设()0k f x '≠,则用线性方程的根作为非线性方程根的新近似值,即定义1()()k k k k f x x x f x +=-' (2.16) 上式即是著名的Newton 迭代公式.它也是一种简单迭代法,其中迭代函数()()()f x x x f x ϕ=-' Newton 迭代法具有明显的几何意义(如图 2.3所示).方程()0f x =的根*x 即为曲线()y f x =与x 轴的交点的横坐标.设k x 是*x 的某个近似值,过曲线()y f x =上相应的点(,())k k x f x 作切线,其方程为()()()k k k x f x y f x x '+-=它与x 轴的交点横坐标就是1k x +.只要初值0x 取得充分靠近根*x ,序列0{}k k x ∞=就会很快收敛到*x .所以Newton 迭代法也称为切线法.二、收敛性定理 2.4 设*x 是方程(2.1)的单根,在*x 的邻域上()f x ''连续且*()0f x '≠.则存在0δ>,当***0(,)[,]x U x x x δδδ∈=-+时,Newton 法产生的序列0{}k k x ∞=至少二阶收敛. 证明 (1) Newton 法迭代函数的导数为2()()()[()]f x f x x f x ϕ'''='显然,()x ϕ'在*x 邻域上连续.又*()0x ϕ'=,一定存在*x 的某个δ闭邻域*(,)U x δ,当*(,)x U x δ∈时,有()1x L ϕ'≤<从而Newton 法产生的序列0{}k k x ∞=收敛.(2)将()f x 在k x 处作一阶Taylor 展开***210()()()()()()2!k k k k k f x f x f x x x f x x ξ'''==+-+- (2.17) 其中k ξ介于*x 与k x 之间.又由Newton 迭代公式有10()()()k k k k f x f x x x +'=+- (2.18)式(2.17)与式(2.18)相减**21()()2()k k k k f x x x x f x ξ+''-=--'从而**1*2*()lim 0()2()k k kx x f x x x f x +→∞''-=≠'- (2.19) 由迭代法收敛阶的定义知,Newton 迭代法至少具有二阶收敛速度.上述定理给出了Newton 法局部收敛性,它对初值要求较高,初值必须充分靠近方程根时才可能收敛,因此在实际应用Newton 法时,常常需要试着寻找合适的初值.下面的定理则给出Newton 法在有根区间上全局收敛的一个充分条件.定理2.5 设*x 是方程(2.1)在区间[,]a b 上的根且()f x ''在[,]a b 上存在,如果(1) 对于任意[,]x a b ∈有,()0f x '≠()0f x ''≠; (2) 选取初值0[,]x a b ∈,使00()()0f x f x ''>.21则Newton 法产生的迭代序列0{}k k x ∞=单调收敛于*x ,并具有二阶收敛速度.(a)(b)(c) (d)图2.4 定理2.5的几何解释证明 满足定理条件(1)共有4种情形,如图2.4所示.下面仅以图2.4(a )情况进行证明,此时满足对任意[,]x a b ∈有,()0f x '>,()0f x ''>,初值*0x x >.首先用数学归纳法证明0{}k k x ∞=有下界*x .当0k =时,*0x x >成立.假设k n =时,不等式*n x x >成立.将*()f x 在n x 处作一阶Taylor 展开,得***2*()()()()()()0,(,)2!n n n n n n n f f x f x f x x x x x x x ξξ'''=+-+-=∈于是**2()()()()2()n n n n n n f x f x x x x f x f x ξ''=---'' 又由Newton 迭代公式,有22**21()()2()n n n n f x x x x f x ξ+''=--' (2.20)式(2.20)右端的第二项大于零,因此*1n x x +>.由数学归纳法知*k x x >,(0,1,2,)k = . 其次证明0{}k k x ∞=单调递减. 由()0f x '>,*k x x >,*()0f x =知,()0k f x >,()0k f x '>,于是Newton 迭代公式(2.16)的第二项大于零,从而1k k x x +>故迭代序列0{}k k x ∞=单调减少.序列0{}k k x ∞=单调减少有下界*x ,它必有极限,记为ˆx ,它满足*0ˆx x x ≤<,进而有ˆ[,]xa b ∈.对1()()k k k k f x x x f x +=-'两端取极限,并利用()f x ,()f x '的连续性,得ˆ()f x=0.结合函数()f x 在[,]a b 上的单调性知*ˆxx =. 因此,Newton 法产生的迭代序列0{}k k x ∞=单调收敛于*x ,利用式(2.20)及式(2.19)知该Newton 迭代序列二阶收敛.算法2.3 (Newton 迭代法)输入 初始近似值0x 、 容许误差ε;输出 近似解1x 或失败信息;Step 1 对1,,n m = 循环执行Step 2~3; Step 2 1000()/()x x f x f x '=-;Step 3 若10x x ε-<,则输出1x ,end ;否则01x x =,转向step2.例 2.6 利用非线性方程230x -=的Newton 迭代公式计算的近似值,使得811102n n x x ---≤⨯,并证明对任意0(0,)x ∈+∞,该迭代法均收敛.解 (1) 建立计算公式213213(0,1,2,)(2)k k k kk kk x x x x x x +-=-=+=其中00x >.(2) 判断收敛性在区间(0,)+∞内,()20f x x '=>,()20f x ''=>,当选取初值0)x ∈+∞时,存在足够大的M,使得0]x M ∈.由定理 2.5知,该迭代公式产生的迭代序列0{}k k x ∞=都收敛于当选取初值0x ∈时,100013()2x x x x =+> 这样,从1x 起,以后的(2)k x k ≥.故该迭代公式对任何初值00x >都收敛. (3) 取初值02x =,迭代计算,结果见表2.4.23从表2.4可见,迭代4 1.73205080756888= .三、Newton 迭代法的变形Newton 迭代格式构造容易,迭代收敛速度快,但对初值的选取比较敏感,要求初值充分接近真解,另外对重根收敛速度较慢(仅有线性收敛速度),而且当函数复杂时,导数计算工作量大.下面从不同的角度对Newton 法进行改进. 1 Newton 下山算法Newton 迭代法的收敛性依赖于初值0x 的选取,如果0x 偏离*x 较远,则Newton 迭代法有可能发散,从而在实际应用中选出较好的初值有一定难度,而Newton 下山法则是一种降低对初值要求的修正Newton 迭代法.方程(2.1)的根*x 也是()f x 的最小值点,若把()f x 看成()f x 在x 处的高度,则*x 是山谷的最低点.若序列0{}k k x ∞=满足单调性条件1()()k k f x f x +< (2.21)则称0{}k k x ∞=为称为()f x 的下山序列.在Newton 迭代法中引入下山因子(0,1]λ∈,将Newton 迭代公式(2.16)修正为1()(0,1,2,)()k k k k f x x x k f x λ+=-=' (2.22)适当选取下山因子λ,使得单调性条件(2.21)成立,即称为Newton 下山法.对下山因子的选取是逐步探索进行的.一般地,从1λ=开始反复将因子λ的值减半进行试算,一旦单调性条件(2.21)成立,则称“下山成功”;反之,如果在上述过程中找不到使条件(2.21)成立的下山因子λ,则称“下山失败”,这时可对k x 进行扰动或另选初值0x ,重新计算.2 针对重根情形的加速算法假设*x 是方程的(2)m ≥重根,并且存在函数()g x ,使得有**()()(),()0m f x x x g x g x =-≠ (2.23)式中()g x 在*x 的某邻域内可导,则Newton 迭代函数***1**()()()()()()()()()()()()()()m m m f x x x g x x x g x x x x x f x m x x g x x x g x mg x x x g x ϕ---=-=-=-'''-+-+-,其导数在*x 处的值***********()()()()()()()()lim lim()1lim11()()()x x x x x x x x g x x x x x mg x x x g x x x x x x g x m mg x x x g x ϕϕϕ→→→---'-+-'==--=-=-'+- 所以*0()1x ϕ'<<,由定理2.2知Newton 迭代法此时只有线性收敛速度.为了加速收24敛,可以采用如下两种方法方法一 令()()()f x x f x μ=',则*x 是方程()0x μ=的单根,将Newton 迭代函数修改为 2()()()()()[()]()()x f x f x x x x x f x f x f x μψμ'=-=-''''- 因此有重根加速迭代公式12()()(0,1,2,)[()]()()k k k k k k k f x f x x x k f x f x f x +'=-='''- (2.24)它至少二阶收敛.方法二 将Newton 迭代函数改为()()()f x x x mf x ϕ=-' 这时*()0x ϕ'=,由此得到加速迭代公式1()(0,1,2,)()k k k k f x x x mk f x +=-=' (2.25)3 割线法Newton 法每步需要计算导数值()k f x '.如果函数()f x 比较复杂时,导数的计算量比较大,此时使用Newton 法不方便.为了避免计算导数,可以改用平均变化率11()()k k k k f x f x x x ----替换Newton 迭代公式中的导数()k f x ',即使用如下公式111()()()()k k k k k k k f x x x x x f x f x +--=--- (2.26)上式即是割线法的迭代公式.割线法也具有明显的几何意义,如图2.5所示,依次用割线方程11()()()()k k k k k k f x f x y f x x x x x ---=+--的零点逐步近似曲线方程()0f x =的零点.割线法的收敛速度比Newton 法稍慢一点,可以证明其收敛阶约为1.618,证明请参考文献[4].此外在每一步计算时需要前两步的信息1,k k x x -,即这种迭代法也是两步法.两步法在计算前需要提供两个初始值0x 与1x .25图2.5 割线法的几何意义例2.7 已知方程42()440f x x x =-+=有一个二重根*x =Newton 法(2.16)和重根Newton 法(2.24)和(2.25)求其近似值,要求611102n n x x ---≤⨯解 32()48,()128f x x x f x x '''=-=-,2()2()()4f x x x f x xμ-==',2m =. 由Newton 法(2.16)得221232(0,1,2,)44k k k k k kx x x x k x x +-+=-==由Newton 法(2.24) 得2122(2)4(0,1,2,)22k k kk k k k x x x x x k x x +-=-==++由Newton 法(2.25) 得22122(0,1,2,)22k k k k k kx x x x k x x +-+=-==利用上述三种迭代格式,取初值0 1.4x =,分别计算,结果见表2.5.26知识结构图习 题1 用二分法求方程2sin 0x e x --=在区间[0,1]内根的近似值,精确到3位有效数字.2 方程340x x +-=在区间[1,2]内有一根,试用二分法求根的近似值,使其具有5位有效数字,至少应二分多少次.3已知方程3210x x --=在0 1.5x =附近有根,试判断下列迭代格式的收敛性,并用收敛的迭代公式求方程根的近似值,比较迭代次数,要求311102n n x x ---≤⨯(1) 1211n nx x +=+;(2) 1n x +=;(3) 1n x +.4设有方程(1) cos 0x x -=; (2) 230x x e -=确定区间[,]a b 及迭代函数()x ϕ,使1()k k x x ϕ+=对任意初值0[,]x a b ∈均收敛,并求各方程根的近似值,要求411102n n x x ---≤⨯.5 用迭代法求50.20x x --=的正根,要求准确到小数点后5位.6 用Steffensen 迭代法求方程31x x =-在区间[1,1.5]内的根,要求准确到小数点后4位.7 用Newton 法和割线法分别求方程3310x x --=在02x =附近根的近似值,并比较迭代次数(根的准确值为* 1.87938524x = ,要求准确到小数点后4位).8Halley 法是加速Newton 法收敛的一个途径,Halley 法在()f x 的单根情况下可达到三阶收敛.Halley 迭代函数是12()()()()1()2(())f x f x f x g x x f x f x -''⎛⎫=-- ⎪''⎝⎭其中括号中的项是对Newton 迭代公式的改进.(1) 设函数2()f x x a =-,试给出Halley 迭代公式,取初值02x =求5的近似值,要求准确到小数点后10位.(2) 设函数3()32f x x x =-+,试给出Halley 迭代公式,取初值0 2.4x =计算其根的近基本概念 (单根、重根、收敛阶)27似值.要求准确到小数点后10位.9试建立计算x =Newton 迭代公式,并取初值01x =,要求611102n n x x ---≤⨯.10 (数值试验)用二分法和Newton 法求下列方程的惟一正根的近似值)0.50x x x =11 (数值试验)设投射体的运动方程为/15/15()9600(1)480()2400(1)t t y g t et x h t e --⎧==--⎪⎨==-⎪⎩1)求当撞击地面时的时间,精确到小数点后10位. 2)求水平飞行行程,精确到小数点后10位.12 (数值试验)试用Newton 法分别求解方程(1)0m x -=,(3,6,12m =),观察迭代序列的收敛情形,分析所发生的现象.能否改造Newton 法使得它收敛更快.。
数值分析(第2章)
2.1.1 求积方法的历史变迁
求积方法源于求曲边图形的面积。 公元前三世纪, 古希腊数学家阿基米德就运用所谓穷竭法计算了一些曲边图形的面积。 其思想是利用曲边图形的内接与外接两个阶梯图形的面积来“穷竭”所给的曲边图形的面 积。穷竭法将面积计算归结为提供曲线的高度,其设计思想淳朴自然,但这种方法要求建 立某种求和公式,而设计这样的求和公式往往是困难的。 微积分的发明使面积计算方法焕然一新。按照微积分基本定理,只要提供被积函数
2.3 Gauss公式
2.3.1 Gauss公式的设计方法
2.3.2 帯权的Gauss公式举例
2.3.1 Gauss公式的设计方法
Newton-Cotes 公式在构造实限用积分区间的等分点作为求积节点,这样做在简化处理 的同时也限制了精度。如果求积节点也可自由选择,即 2.1.2 中机械求积公式中的
作为求积节点构造形如 2.1.2 中求积公式,若这种公式至少有 n 阶精度,则称之为 n 阶 Newton-Cotes公式。特别的,梯形公式
b
a
f x dx
ba f a f b 2 ab , x2 b 作为求积节点构造形如 2
是最简单的 Newton-Cotes 公式。下面再举例说明这种公式的构造。 例 试以 a, b 的二等分点 x0 a, x1
ba ba t ,则 2.1.2 中的机械求积公式可变为 2 2
g t dt 2 g t
1 1 i 0 i i
n
式中节点为
ti
1 2 xi a b ba
这时 2.1.3 中的方程组就表现为较简单的形式。不失一般性,在设计求积公式时,可 以着重考察区间为 1,1 的特殊情形。
《数值分析第二章》PPT课件
定理2.1
顺序高斯消去法的前 n1 个主元
a (k ) kk
均不
为零的充要条件是 Ax b 的系数矩阵 A 的前 n 1个
顺序主子式
a a (1) (1) 11 12
Dk
a(1) 21
a(1) 22
a(1) 1k
a(1) 2k
0
(k1,2,...,n1).
a a (1) (1) k1 k2
a(1) kk
(1)
4 x2 x3 5
(2)
2
x1
2
x2
x3
1
(3)
解 <1> 化上三角方程组
x1 x2 x3 6
①
4 x2 x3 5
②
③+(-2)×①
2
x1
2 x2
x3
1
③
x1 x2 x3 6
①
4 x2 x3 5
②
④+ ②
4 x2 x3 11
④
x1 x2 x3 6
检验
原方程组:
0.012x1 0.010x20.167x3 0.6781
x10.8334x25.910x3 12.1
3200x1 1200x2 4.2x3 981
近似解: x 3 5 .5 4 6 ,x 2 1 0 0 .0 ,x 1 1 0 4 .0
把上近似解代入第 3 个方程后,得
3200×(-104)+1200×100 +4.2×5.546 = -2.1278e+005
列主元素消去法求解方程组时,各个列主元素
a (k ) ik k
均不为零。
证
设有一个列主元素
a
(r ) ir r
数值分析-第二章-距离空间
a
b g(x) q dx 1/ q
a
其中 f (x) p , g(x) q在[a,b]上可积分。
特别的 p=q=2 时,称为 Cauchy 不等式
特别的,当 n=1 时, (x, y) x y , 当 n=2 时, (x, y) (x1 y1)2 (x2 y2 )2
如果在 R2 中,定义 d(x, y) x1 y1 x2 y2 ,
例2 有理数空间 Q 按欧氏距离是不完备的距离空间。
例 3 距离空间l2 和 L2[a,b]按通常意义下的距离是完备的。
例 4 C[a,b]按 (x, y) max x(t) y(t) 是完备的距离空间; t[ a ,b ]
C[a,b]按
1(x,
y)
b
a
x(t)
y(t ) dt
是不完备的距离空间
间 Q 是等距同构的,所以实数空间 R1 是有理数空间 Q
的完备化空间。
例2
C[a,b]按距离
(x,
y)
b
a
x(t)
y(t)
dt
是不完备的,
但C[a,b] L1[a,b],且C[a,b]在L1[a,b]中稠密,故 L1[a,b]是
C[a,b]的完备化距离空间。
同理,C[a,b]按距离
( x,
y)
则l p 是距离空间,常称为 p 方可和的空间。
特别的,当 p=2,l 2 称为平方可和距离空间。
§2.2 收敛概念
1) 定义(收敛点列) 设 X 是一个距离空间,{x n}是
X 中点列, x X 。若 n 时, (xn, x) 0 (即 0, N, 当n N时, (xn, x) )
补充不等式
1)Minkowski 不等式
数值分析第二章答案
∑
n
i=1
ln x i = 0
θ
∧
= −
n
∑ ∑
n
n
i=1
ln x i n
θ
= =
解之得:
i=1
ln x i
(2)母体 X 的期望
E (x) =
∫
+∞ −∞
xf ( x ) d x =
∫
1 0
θ xθ dx =
θ θ +1
而样本均值为:
1 n X = ∑ xi n i =1 令E ( x) = X 得 θ =
x e 2σ 1 n
d x = 2 x ) =
∫
+ ∞ 0
x 2σ
e
−
x σ
d x = − x e ) = 1 ⋅ nσ n
−
x σ
+ ∞
+
0
∫
+ ∞ 0
e
−
x σ
d x =
E (σ ) = E (
∑
n
i=1
i
1 n
∑
n
E ( x
i=1
i
= σ
所以
σ=
∧
1 n ∑ xi σ n i=1 为 的无偏估计量。
∧
X 1− X
5.。解:其似然函数为:
L (σ ) = ∏
i =1
n
1 ⋅e 2σ
−
xi σ
=
1 ⋅e (2σ ) n 1 σ
n i =1
−
1 σ
∑ xi
i =1
n
ln L (σ ) = − n ln(2σ ) − 得: σ =
∧
数值分析_第二章_插值法
1 x0
x2 0
ቤተ መጻሕፍቲ ባይዱ
…
xn- 1 0
…… ………
V n- 1 ( x0 ,x1 ,… ,xn- 1 ) =
1
xn- 2
x2 n- 2
…
xn- 1 n- 2
1
xn- 1
x2 n- 1
…
xn- 1 n- 1
∏ =
( xi - xj ) .
0 ≤ j < i ≤ n- 1
故 知 V n ( x) = V n- 1 ( x0 ,x1 ,… ,xn- 1 )( x - x0 )( x - x1 ) … ( x -
= R截 + R舍
=
f″2(!ξ)( x -
xi )( x -
xi+ 1 ) +
×
(-
0
.693147)
+
(0 .54 (0 .6
- -
0 0
.4)(0 .4)(0
.54 - 0 .5) .6 - 0 .5)
× ( - 0 .510826) ≈ - 0 .615320 .
4畅 解
由题设知 0° ≤
x≤
90° ,h =
xi+ 1
-
xi
=
(
1 60
)°
.记
xi
处的准确值为 f i ,带有误差的值为 f i ,则
7 ,
x
∈
[1 ,2] ,
-
19 2
x3
+ 67 x2
-
293 2
x
+
105 ,
x
∈
(2 ,3] .
四 、习题
1畅 根据范德蒙行列式的定义 ,令
V n ( x) = V n ( x0 ,x1 ,… ,xn- 1 ,x)
数值分析第二章解线性方程组的直接方法
a2(22) x2 ... a2(2n) xn b2(2) ,
..............
an(nn) xn bn(n) .
对此方程组进行回代,就可求出方程组的解.
xn
xiΒιβλιοθήκη bn(n) (bi(i )
an(nn) ,
n
ai(ji ) x
j i 1
j
)
ai(ii ) ,
i n 1,n 2,,1.
x3 x3
1 1
4x1 2x2 2x3 3
消去后两个方程中的x1得
x1
2 x2 5 x2
x3 1 2x3 2
6x2 6x3 1
再消去最后一个方程的x2得
x1
2 x2 5 x2
x3 1 2x3 2
42 5
x3
7 5
消元结束.
x1
1 2
经过回代得解:
x2
1 3
互换, 因而程序比较复杂, 计算时间较长.
• 列主元素法的精度虽然稍低于全主元素法, 但其
计算简单, 工作量大为减少, 且计算经验与理论实
践均表明, 它与全主元素法同样具有良好的数值稳
定性.
• 列主元素法是求解中小型稠密线性方程组的最好
方法之一.
27
§2 直接三角分解法
Gauss消元法的矩阵表示
a12
a13
a 1 0 a21 a22 a23 a21 aa11 a22 aa12 a23 aa13
b 0 1 a31 a32 a33 a31 ba11 a32 ba12 a33 ba13
28
n=3时Gauss消元法的矩阵表示
a11 a12 a13 A a21 a22 a23
尚晓清数值分析第二章投影与逼近
(1)
(x) 1
b
a
f (x) S(x) dx min ,称为最佳一次逼近;
1
(2)
(x)
2
b
[
a
f
(x)
S
(
2
x)] dx
2
min
,称为最佳平方逼近或均
方逼近;
(3)
(x)
max x[ a ,b ]
f (x) S(x)
min ,称为最佳一致逼近或均
匀逼近。
2.数据拟合(曲线拟合)——离散函数的最佳逼近
x x0 , x0 0
故 2 x x0 , x x, x x0 , x
x, x
n
* i
xi
,
x
i1
x,
x
1*
x1
,
x
* 2
x2
,
x
* n
xn
,
x
由此可以具体估算出 x0 与 x 的误差。
§3.3 函数空间中的最正确逼近
——最佳平方逼近和最佳多项式逼近。
1.最佳平方逼近
在 L2[a,b]空间中定义带权函数的内积:
函数误差 (x) f (x) S(x)
或离散点的误差 (xi ) f (xi ) S(xi )(i 1, 2, , n) 在某种度量标准(如范数)下最小。
由此求出的函数 S(x)称为目标函数 f (x)的最佳逼近函数, 求 f (x)近似表达式 S(x) 的问题称为最佳逼近问题。
本章主要讨论两种类型的最佳逼近问题。
基本思想:对于给定的数据表 (xi , f (xi )) (i 1, , n) ,在
已知函数类 (x) C[a,b]或L2[a,b]中寻找函数 f (x)的
数值分析_第二章
方程求根问题 简单迭代法 牛顿迭代法 非线性方程组的数值解法
课程安排
第八章 矩阵特征值问题的数值解法 (6 学时) 幂法 雅可比方法 QR方法
课程安排
第九章 常微分方程初值问题 (4学时)
欧拉方法 龙格-库塔方法 单步法和多步法
课程安排
上机实验
(16学时)
课程基本要求
E An n E An 1 1
8
n 1
n! E A 1
7
E A9 1 9! 4.41210 0.1601
由于误差在计算过程中放大很严重, 所以这是一种 数值不稳定的算法。
寻找一种数值稳定的相反的算法, 把乘法改为除法。用相向的递推关系
n 1 x exp( x 1) n x exp( x 1) dx 0 0
An 1 n An1 ,
n 2,3,
0 A 1 x 1 exp(x 1) dx 0
1
1 d exp x 1
1 0
1 1 e
数值计算问题的适定性
1. “良态”问题和“病态”问题
在适定的情况下,若对于原始数据很小的变化δ X, 对应的参数误差δ y也很小,则称该数学问题是良 态问题;若δ y很大,则称为病态问题 病态问题中解对于数据的变化率都很大,因此数 据微小变化必将导致参数模型精确解的很大变化 数学问题的性态完全取决于该数学问题本身的属 性,在采用数值方法求解之前就存在,与数值方 法无关
4.7
取n=5,设计算每项数值的舍入误差为Δ ,
令4Δ ≤Є=0.0005 Δ ≤0.0001,取 Δ =0.00005=0.5*10-4
数值分析课件第二章_非线性方程求根
| xn x || ( xn 1 ) ( x ) |
* *
| ( ) || xn 1 x* |
*
| xn x | L | xn1 x | | xn x | L | x0 x |
* n *
lim | xn x | lim L | x0 x | 0
x*即为不动点。
不动点存在的唯一性证明:
设有 x1*≠ x2*, 使得
* 1 * 2 * 1
(x ) x
* 1
* 1
(x ) x
* 2
* 2
* * 则 | x x || ( x ) ( x ) || ( ) || x1 x2 | * 2
其中,ξ介于 x1* 和 x2* 之间。
由于
计法
Ln xn x * x1 x0 1 L
很难估计,采用事后估
| xn x* |
1 | xn 1 xn || xn 1 xn | ,L大误差大。 1 L
不动点迭代法可以求方程的复根和偶数重根。
例 用不同方法求 x 2 3 0 在x=2附近的根。 解: 格式(1)
则对任意x0 [a, b],由xn+1=(xn )得到的迭代序 列{xn }收敛到(x)的不动点x *,并有误差估计:
1 | xn x | | xn 1 xn | 1 L
*
L xn x * x1 x0 1 L
n
证明:
xn ( xn1 ) * * x ( x )
x0
O
x1
x3 x * x2
x0
y ( x)
发散
y ( x)
O
数值分析第二章PPT
§4 差分与等距节点插值
上节讨论任意分布节点的插值公式,应用时常碰到等距 节点的情形,此时插值公式可简化,为此先介绍差分. 一、差分及其性质
差分的基本性质:
差分表:
k fk ∆
∆2
0 f0
∆f0
1 f1
∆2f0
∆f1
2 f2
∆2f1
∆f2
3 f3
∆2f2
∆f3
┆
4 f4 ┆
┆┆
• 解 x0 = − 1, x1 = 1,
f(0.5)≈H3(0.5) = 3.5625.
例2 给定 f(0) = 1, f(1) = 2, f '(0) = 2, 构造二次插值函数。
• 解 公式法
•
设 f '(1) = m1,有三次Hermite插值公式得,
令 m1 = 0,得到二次Hermite插值函数 H2(x) = −x2 + 2x + 1.
利用
sin 50内0 插L1(通51p8常) 优0于.77外614推。这选里择
而 要计算的 x 所在的区间的
端点,插值效果较好。
sin 50 = 0.7660444…
外推 /* extrapolation */ 的实际误差 0.01001
利用
sin 50 0.76008,
内插 /* interpolation */ 的实际误差 0.00596
二、拉格朗日插值多项式
需要指出…
练习 给定数据表
xi
ห้องสมุดไป่ตู้
01 2
3
yi
0 1 5 14
求三次拉格朗日插值多项式L3(x).
三、插值余项与误差估计
数值分析第二章
例1 用消去法解方程组
x1 x2 x3 6,
4 x2 x3 5,
2
x1
2 x2
x3
1.
(2.2) (2.3) (2.4)
解 第1步,将方程(2.2)乘上-2加到方程(2.4)上去,
消去(2.4)中的未知数x1,得到
4x2 x3 11.
(2.5)
第2步,将方程(2.3) 加到方程(2.5)上去,消去
ln1 y1 ln2 y2 lnn yn bn
解为
n1
, y1
b1 l11
,
y2
b2
l21 y1 l22
,
bn l1 j y j
yn
j1
lnn
计算量(乘除法的主要部分)都为 n2/2.
因此,我们将一般的线性方程组化成等价的三
角形方程组来求解.
首先举一个简单的例子来说明消去法的基本思想.
但实际计算中由于舍入误差的存在和影响,这种 方法也只能求得线性方程组的近似解. 本章将阐述这 类算法中最基本的和具有代表性的算法就是高斯消 元法,以及它的某些变形和应用.这类方法是解低阶稠 密矩阵方程组及某些大型稀疏矩阵方程组(例如,大 型带状方程组)的有效方法.
2. 迭代法
就是用某种极限过程去逐步逼近方程组精确解的 方法. 迭代法具有计算机的存储单元较少、程序设计 简单、原始系数矩阵在计算过程中始终不变等优点, 但存在收敛条件和收敛速度问题.迭代法是解大型稀 疏矩阵方程组(尤其是由微分方程离散后得到的大型 方程组)的重要方法.
(
Ab)
0
4
1 5r3 2r10
4
1
5 r3 r2 0 4 1
5
2 2 1 1 0 4 1 11 0 0 2 6
数值分析 第二章 代数插值
求出未知量a0,…,an代入(2.1)即得所求轮廓线. ■
郑州大学2013-2014学年硕士研究生课程 数值分析 Numerical Analysis
§2.1 代数插值问题
代数插值问题: 设函数 y=f (x)定义在区间[a, b]上,而
x0,x1,…,xn是在[a, b]上取定的n+1个互异节点,且在这些点 处的函数值为 yi=f (xi),i=0,1,…n. 求一个次数不超过n次的多项式Pn(x),使它满足
1
2
( x0 x1 )(x0 x2 )
类似可得
( x x0 )(x x2 ) ( x x0 )(x x1 ) l1 ( x) l 2 ( x) ( x1 x0 )(x1 x2 ) ( x2 x0 )(x2 x1 )
14/168 郑州大学2013-2014学年硕士研究生课程 数值分析 Numerical Analysis
n次插值基函数
n次插值
由抛物插值中构造性方法启发,解决一般的n次代数插值问题.
分别构造x0 , x1, …, xn 上的 n 次插值基函数 l0(x), l1(x), …, ln(x),满足
x0 1 0 x1 0 1 x2 0 0 … xn 0 0
i j 0,1, 2, 1, li ( x j ) ij 0, i j
设计思路
2/168 郑州大学2013-2014学年硕士研究生课程 数值分析 Numerical Analysis
§2.1 代数插值问题
例2.1.1 设计某工件的外形,要求其轮廓线是光
滑的,且必须过n+1个互异的点(xi,yi)(i=0,1,…,n).
轮廓线应如何设计呢?
数值分析-第二章小结
第二章 线性方程组的数值解法-------学习小结姓名 班级 学号 一、本章学习体会通过本章的学习,我了解了线性方程组的不同解法,切实体会到了不同的计算方法对计算结果的影响。
求解线性方程组的方法可分为两大类:直接方法和迭代方法。
直接方法在解一般的线性方程组的时候比较简便,使用此方法经过有限次运算就可得到方程组的解。
然而迭代法是要构造一个无限的向量序列,其极限是方程组的解向量,它适用于求解大型稀疏线性方程组。
总的来说,直接方法和迭代法各有优点与不足,在解线性方程组的时候,我们要根据具体的线性方程组的特点来选择合适的解法,这样我们才能快速准确的得到方程组的解。
因此,我们要熟悉书中介绍的各类线性方程组的解法,同时要善于思考、总结,在使用各种方法求解的同时尽量提出自己独特的见解,通过不断练习计算,使自己的能力得到提高。
二、本章知识梳理线性方程组的求解方法分为直接法和迭代法两种,Gramer (克莱姆)法是直接法的一种,但由于其计算量比较大,在世界工作中其效率比较低、经济效益差,所以此方法我们很少使用,本章主要介绍其他的计算方法。
2.1 Gauss 消去法Gauss (高斯)消去法由消元和回代两个过程组成。
消元过程就是对方程组的增广矩阵做有限次的初等行变换,使它的系数矩阵部分变换为上三角阵。
所用的初等行变换主要有两种:第一种,交换两行的位置;第二种,用一个数乘某一行加到另一行上。
回代过程就是先由方程组的最后一个方程解出n x ,然后通过逐步回代,依次求出1n x -,2n x -,…,1x 。
这种Gauss 消去法可分为Gauss 消去法和列主元素Gauss 消去法两种。
2.1.1 顺序Gauss 消去法在Gauss 消去法的消元过程中对方程组的增广矩阵只做前述的第二种初等行变换就形成了顺序Gauss 消去法,其算法如下:记(1)ij ij a a = (i ,j=1,2,…,n )i i 1、 消元过程对于k=1,2,…,n-1执行 (1)如果()0k kka =,则算法失效,停止计算;否则转(2)。
数值分析 第二章 学习小结
第2章线性方程组的解法--------学习小结本章学习体会本章主要学习的是线性方程组的解法。
而我们则主要学习了高斯消去法、直接三角分解法以及迭代法三种方法。
这三种方法的优缺点以及适用范围各有不同。
高斯消去法中,我们又学习了顺序高斯消去法以及列主元素高斯消去法。
顺序高斯消去法可以得到方程组的精确解,但要求系数矩阵的主对角线元素不为零,而且该方法的数值稳定性没有保证。
但列主元素高斯消去法因为方程顺序的调整,其有较好的数值稳定性。
直接三角分解法中,我们主要学习了Doolitte分解法与Crout分解法。
其思想主要是:令系数矩阵A=UL,其中L为下三角矩阵,U是上三角矩阵,为求AX=b 的解,则引进Ly=b,Ux=y 两个方程,以求X得解向量。
这种方法计算量较小,但是条件苛刻,且不具有数值稳定性。
迭代法(逐次逼近法)是从一个初始向量出发,按照一定的计算格式,构造一个向量的无穷序列,其极限才是所求问题的精确解,只经过有限次运算得不到精确解。
该方法要求迭代收敛,而且只经过有限次迭代,减少了运算次数,但是该方法无法得到方程组的精确解。
二、本章知识梳理针对解线性方程组,求解线性方程组的方法可分为两大类:直接法和迭代法,直接法(精确法):指在没有舍入误差的情况下经过有限次运算就能得到精确解。
迭代法(逐次逼近法):从一个初始向量出发,按照一定的计算格式,构造一个向量的无穷序列,其极限才是所求问题的精确解,只经过有限次运算得不到精确解。
我们以前用的是克莱姆法则,对于计算机来说,这种方法运算量比较大,因此我们学习了几种减少运算次数的方法,有高斯消去法、直接三角分解法,同时针对病态方程组,也提出了几种不同的解法。
Gauss消去法Gauss消去法由消元和回代两个过程组成,消元过程是指针对方程组的增广矩阵,做有限次初等行变化,使它系数矩阵变为上三角矩阵。
顺序Gauss消去法消元过程:对于K=1,2,3…,n-1执行如果,则算法失效,停止计算;否则转(2)对于计算回代过程:综上:顺序Gauss消去法的数值稳定性是没有保证的。
数值分析第二章电子教案(欧阳洁)
第二章非线性方程求根§1 概述§2 二分法(对分法)§3 不动点迭代的基本理论§4 Newton迭代法§5 Newton法的变形欧阳洁1欧阳洁2需要给出求根的近似值的方法。
1 一般方程的根无法用解析表达式给出;一. 研究数值解法的必要性2 三次、四次方程的求根公式较繁。
二. 方程的根方程f (x )=0 (f (x )为连续函数)的解α称为方程f (x )=0的根或称为f (x ) 的零点。
)()()(x g x x f m α−=若,其中m 为正整数,g (x )满足,显然α为f (x )的零点。
这时,称α为f (x )的m 重零点,或称α为f (x )=0的m 重根。
0)(≠αg §1 概述欧阳洁4由必要性设α是f (x )的m 重零点,则且)()()(x g x x f m α−=0)(≠αg ∑=−−=ki i k i m i k k x g x c x f 0)()()()(])[()(α∑=−−−+−−=ki i k i m ik x g x i m m m c 0)()())(1()1(αL 当k =m 时∑=−−−+−−=mi i m i m i m k g i m m m c f 0)()()())(1()1()(ααααL 0)())(1()1()(0)()(=−+−−=∑=−−ki i k im i k k g i m m m c f ααααL 当时10−≤≤m k 0)(!≠=αg m欧阳洁5求方程根的近似值之前,需要首先确定隔(有)根区间[a ,b ](在[a ,b ]上方程仅有一个根)。
三. 根的搜索方法:(1)画图:对于,在同一坐标系中画出及的图形后,由两曲线交点横坐标所在的大致范围求出方程根的近似值。
(2)分析:根据函数f (x )的连续性、介值定理以及单调性等去寻找有根区间和隔根区间。
(3)搜索:在某一区间上以适当的步长h ,去考察函数值的符号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数值运算的误差估计 误差分析的方法 误差分析的原则
数值运算的误差估计
* * * * 两个近似数 x1 与 x2 ,其误差限分别为 ε ( x1 ) 及 ε ( x2 ) ,它们进行加、
减、乘、除运算得到的误差限分别为
* * * * ε ( x1 ± x2 ) = ε ( x1 ) + ε ( x2 ) * * * * * * ε ( x1 ⋅ x2 ) ≈ x1 ε ( x2 ) + x2 ε ( x1 ) * * * * x1 ε ( x2 ) + x2 ε ( x1 )
例 1:计算 x 255 的值。
如果逐个相乘要用 254 次乘法,但若写成
x 255 = x ⋅ x 2 ⋅ x 4 ⋅ x8 ⋅ x16 ⋅ x 32 ⋅ x 64 ⋅ x128
只要做 14 次乘法运算即可。
误差分析的原则-IV
例 2:计算多项式
Pn ( x ) = an x n + an −1 x n −1 + + a1 x + a0
⇓
用 106 ⋅ 0.2000 除第二 个方程减第一个方程
⎧101 ⋅ 0.1000 x2 = 101 ⋅ 0.1000 ⎨ 1 10 ⋅ 0.2000 x1 + 101 ⋅ 0.1000 x2 = 101 ⋅ 0.2000 ⎩
⇓
很好的近似解!
x1 = 0.5000, x2 = 101 ⋅ 0.1000 = 1
δi = 0.000009 × 105 ,在五位的计算机中表示为计器 0。
A = 0.52492 × 105 + 0.000009 × 105 + 0.52492 ×105
+ 0.000009 × 105
误差分析的原则-III
如果计算时先把数量级相同的一千个 δi 相加,最后再加 52492, 就不会出现大数“吃掉”小数的现象。
这时,
0.1× 10 ≤ ∑ δi ≤ 0.9 × 103
3 i=1 1000
0.001× 105 + 0.52492 × 105 ≤ A ≤ 0.009 × 105 + 0.52492 × 105
52592 ≤ A ≤ 53392
误差分析的原则-IV
4. 注意简化计算步骤,减少运算次数
(减少运算次数,不但可以节省计算机的计算时间,还能 减少舍入误差)
则只要 n 次乘法和 n 次加法就可算出 Pn ( x ) 的值。
插值法 Interpolation
1 − cos x = 2sin 2 x 2
比如计算 A = 107 (1 − cos 2° ) ,这里取 cos 2° = 0.9994 。
误差分析的原则-II
例:求方程 ax 2 + bx + c = 0, a ≠ 0 的两个根 x1 , x2 的公式是
−b + b 2 − 4ac −b − b 2 − 4ac 和 x2 = x1 = 2a 2a
例如, x, y 的近似值为 α, β ,误差限为 δα, δβ ,即
或者
x − α ≤ δα , y − β ≤ δβ
x ∈ [ α − δα, α + δα ] = X , y ∈ [β − δβ, β + δβ] = Y
z = x ∗ y → Z = X * Y = [ z , z ] = [ z − δz , z + δz ]
(
)
数值运算的误差估计
当 f 为多元函数时,如 A = f ( x1 , x2 ,
* * 似值为 x1 , x2 , * , xn ,则
, xn ) ,设 x1 , x2 ,
, xn 的近
* * e ( A* ) = A* − A = f ( x1 , x2 , * * ⎛ ∂f ( x1 , x2 , ≈ ∑⎜ ∂xk k =1 ⎜ ⎝ n
若 b > 0 且 b2
4ac ≥ 0 ,计算 x1 会产生相减相消。
x1 = −2c b + b 2 − 4ac
注:如果无法改变算式,则采用增加有效位数进行运算;在计算机 上可采用双倍字长运算,但这要增加机器计算时间并且占用更多的 内存单元。
误差分析的原则-III
3. 要防止大数“吃掉”小数
(在数值运算中参加运算的数数量级相差很大时,可能 会影响计算结果的可靠性)
k =1
dt ,则 x = ± a × 10 J (基数 p )
计算机的字长,表 示数x的尾数的位数
一般地,一个 p 进制数 x 可以表示成
x = ±p
t
J
dk p −k ∑
k =1
t
或
x = ±a × p J
数x的阶,用 来确定该数的 小数点的位置
我们称 a = ∑ d k p − k = 0.d1d 2
对于十进制规格化浮点数: 0.1 ≤ a < 1
计算机中数的表示
采用浮点表示的数,进行两数相加(或相减)时,首先要对阶, 即把两数的小数点对齐,使它们的阶相等。
对阶的方法 把阶数小的数尾数右移,每移一位其阶就加“1”直 到两数的阶相等。
例:假设所使用的计算机是采用舍入的方法, t = 5, p = 10 。若
*
f ′′ ( ξ ) * 2 ( x − x ) , ξ ∈ ( x, x * ) 2
取绝对值得
f ( x) − f ( x
*
) = f ′( x ) ε ( x ) +
* *
f ′′ ( ξ ) 2
ε 2 ( x* )
忽略 ε ( x* ) 的高阶项可得计算函数的误差限
ε f ( x* ) ≈ f ′ ( x* ) ε ( x* )
x1 = 0.50000125, x2 = 0.999995
误差分析的原则-II
2. 要避免两相近数相减
(在数值计算中相近的两数相减有效数字会严重损失)
例:计算表达式 1 − cos x ,当 x 相减相消。
两个几乎相等的同号数相减时精度的损失称为相减相消
0 时,直接进行计算会导致
然而我们可以利用恒等式
例 : 在 五 位 十 进 制 计 算 机 上 计 算 A = 52492 + ∑ δi , 其 中
i =1 1000
0.1 ≤ δi ≤ 0.9 。
首先,把运算的数写成规格化形式 A = 0.52492 ×10 + ∑ δi 。
5 i =1 1000
由 于 在 计 算 机 内 计 算 时 要 对 阶 , 若 取 δi = 0.9 , 对 阶 时
误差分析的原则-I
1. 要避免除数绝对值远远小于被除数绝对值的除法
(用绝对值小的数作除数舍入误差会增大)
⎧0.00001x1 + x2 = 1 例:求解线性方程组 ⎨ 。 ⎩2 x1 + x2 = 2
其准确解为
x1 = x2 =
200000 = 0.50000125 399999 199998 = 0.999995 199999
⇓
⎧10−4 ⋅ 0.1000 x1 + 101 ⋅ 0.1000 x2 = 101 ⋅ 0.1000 ⎨ 一个方程减第二个方程 ⎩106 ⋅ 0.2000 x2 = 106 ⋅ 0.2000
用 (10−4 ⋅ 0.1000 ) 2 除第
⇓
严重失真!
x1 = 0, x2 = 101 ⋅ 0.1000 = 1
* * ε ( x1 x2 ) ≈
x
* 2 2
(x
* 2
≠ 0)
数值运算的误差估计
更一般的情况是,当自变量有误差时计算函数值也产生误差,其 误差限可利用函数的 Taylor 展式进行估计。
设 f ( x ) 是一元函数, x 的近似值为 x* ,则
f ( x ) − f ( x ) = f ′ ( x* )( x − x* ) +
x = 0.21062 ×10−5 , y = 0.12345 × 10−3 ,则 x ⊕ y = ?
浮点数运算加
误差分析的方法
向前误差分析法
(Forward Error Analysis)
直接估计计算结果与真确结果之间的误差,称为向前误差分析。
真确值:x = g ( a1 , a2 ,
, an )
≈
27 = 0.31% 8800
相对误差限
计算机中数的表示
现在我们假定提供给计算机的数 x 只是有限位小数。这样,数 x 可以表示成
x = ±10
J
∑ d 10
k =1 k
t
−k
其中 J 是整数, d1 , d 2 ,
t
, dt 都是 0,1, 2,
,9 中的一个数字。
若记 a = ∑ dห้องสมุดไป่ตู้k 10− k = 0.d1d 2
若直接计算 ak x k 再逐项相加,一共需做
n + ( n − 1) +
+ 2 +1 =
n ( n + 1) 次乘法和 n 次加法。 2
⎧ S n = an ⎪ 若采用 ⎨ S k = xSk +1 + ak ⎪P ( x ) = S 0 ⎩ n
( k = n − 1,
, 2,1, 0 )
秦九韶算法
x 计算结果: fl
x − x fl
向后误差分析法
(Backward Error Analysis)
将计算过程的误差归结为初始误差的误差,称为向后误差分析。
若对每个 ai 引入某个摄动量 εi ,使得
J.H. Wilkinson (1960) 数值代数,矩阵计算
x fl = g ( a1 + ε1 , a2 + ε 2 ,