数值分析-对分法和一般迭代法

合集下载

数值分析(颜庆津) 第4章 学习小结

数值分析(颜庆津) 第4章 学习小结

第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简单迭代法及其收敛性迭代法是一种逐次逼近法,用某个固定公式反复校正根的近似值,使之逐步精确化,最后得到满足精度要求的解。

数值分析3.1.二分法、迭代法及收敛性

数值分析3.1.二分法、迭代法及收敛性

上述令p→∞, 及limxk+p=x* (p→∞)即得(2.6)式. 证毕. 注:误差估计式(2.5)原则上确定迭代次数,但它由 于含有信息 L 而不便于实际应用. 而误差估计式(2.6) 是实用的,只要相邻两次计算结果的偏差足够小即 可保证近似值 xk 具有足够精度.
注: 对定理1和定理2中的条件2º 可以改为导数,即 在使用时如果(x)∈C[a, b]且对任意x∈[a, b]有
显然f(x)∈C[a, b],且满足f(a)=(a)-a>0, f(b)=(b)-b<0, 由连续函数性质可知存在 x*∈(a, b) 使 f(x*)=0,即 x*=(x*),x*即为(x)的不动点. 再证不动点的唯一性. 设x1*, x2*∈[a, b]都是(x) 的不动点,则由(2.4)得
可以如此反复迭代计算
xk+1=(xk) 到的序列{xk}有极限 (k=0,1,2,). (2.2)
(x)称为迭代函数. 如果对任何x0∈[a, b],由(2.2)得
lim xk x .
k
则称迭代方程(2.2)收敛. 且x*=(x*)为(x)的不动点, 故称(2.2)为不动点迭代法.
例1 用二分法求方程 f(x)=x3-x-1=0在(1, 1.5)的实根, 要求误差不超过0.005.
解 由题设条件,即:
|x*-xn|≤0.005 则要
1 2
n 1
(b a)
1 2
n 1
(1.5 1)
1 2
n 2
0.005
2 由此解得 n 1 5.6,取 n=6, 按二分法计算过程见 lg 2
L2 xk 1 xk 2 Lk x1 x0 .
于是对任意正整数 p 有

数值分析_第2章

数值分析_第2章

证:由1。 f '( x) C[a, b],由2。 f '( x)不变号,故f ( x) 知 知 单调,再由3。 唯一的 [a, b],使f ( ) 0. 知
由1 3 知f ( x)在[a, b]上必属于下列四种情形之一:
。 。
f ''( x) 0 f (a) 0, f (b) 0, f '( x) 0(增) f ''( x) 0
二.收敛性:
mn . n .
◆判定二分次数:
1 lim n 1 b0 a0 0 n 2
1 对 0,若要求 mn n 1 b0 a0 2
b0 a0 则2 n log 2 1与取整的 1抵消 .
定理1.(单点法收敛的充分条件) 设f ( x)在[a, b]上二阶 可导,且满足:
。 1. f ''( x)在[a, b]上不变号(凹凸不变性);
2。 f '( x)在[a, b]上不为0(单调性); . 3。 f (a) f (b) 0; . 4。取x0 [a, b], 使f ( x0 ) f ''( x0 ) 0.x1 [a, b], f ( x1 ) f ( x0 ) 0. . 则由(6)所得 xn 单调收敛于f ( x) 0在[a, b]上的唯一根。
列表计算:
n
0 1 2 3 4 5
xn
2 1 1.33333 1.40000 1.41176 1.40378
2
f ( xn )
2 -1 -0.22223 -0.04000 -0.00692
hn

数值分析笔记

数值分析笔记

第一章1.设x 为准确值,x*为x 的一个近似值.称e*=x*-x 为近似值的绝对误差,简称误差。

ε*=|e*|叫做近似值的误差限,e ∗x=x ∗−x x为相对误差,εr∗=ε∗|x ∗| 为相对误差限。

2.采用四舍五入原则时,值的误差不超过末位数字的半个单位(对π估计值取3.14时,误差|π-3.14|≤0.5 * 10-2). 3.ε(x 1∗±x 2∗)≤ ε(x 1∗)+ε(x 2∗) ε(x 1∗·x 2∗)≤|x 1∗|ε(x 2∗)+|x 2∗|ε(x 1∗) ε(x 1∗/x 2∗)≤|x 1∗|ε(x 2∗)+|x 2∗|ε(x 1∗)|x 2∗|24.相近数相减、大数吃小数等问题会加大误差。

T1. 已测得某场地长Ɩ的值为Ɩ*=110m ,宽d 的值为d*=80m ,已知 |Ɩ - Ɩ*| ≤ 0.2m ,|d – d*| ≤ 0.1m.试求面积s=Ɩd 的绝对误差限与相对误差限。

解:因为s= Ɩd, ðs ðƖ=d,ðsðd =Ɩ.故 ε(s∗)≈|(ðs ðl)∗|ε(l ∗)+|(ðs ðd)∗|ε(d ∗), (ðs ðl )∗=d ∗=80m (ðsðd)∗=l ∗=110m ε(l ∗)=0.2m ε(d ∗)=0.1m得绝对误差限 ε(s ∗)=27(m 2)相对误差限εr∗=ε(s ∗)|s ∗|=ε(s ∗)l ∗d ∗≈0.31%T3. 计算I n =e −1∫x n e xdx(n =0,1,…)1并估计误差。

解:由分部积分可得I n =e −1∫x n d (e x )=e −1(x n e x |01−∫e x d (x n )1)1=1−e −1n ∫x n−11e xdx =1−nI n−1 I 0=e−1∫e x10dx =1−e −1得到通式{I n =1−nI n−1 (n =1,2,…)I 0=1−e −1(1)为计算出I 0须先计算e -1,采用泰勒展开式,取k=7,使用四位小数计算。

数值分析2 迭代法

数值分析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)证明 :收敛性是显然的。

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

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

数值分析--第三章--迭代法迭代⼀般⽅程:本⽂实例⽅程组:⼀.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迭代的运算过程。

数值分析计算方法

数值分析计算方法
}
void main(void)
{
double fa=fc(1),fb=fc(3),a=1,b=3,f,x0;
int k=0;
for(;b>a&&b-a>=pow(10,-4)*0.5;)
{
仁fc((a+b)/2);
if(仁=0)
{ x0=(a+b)/2; break;
}Байду номын сангаас
else if(fa*f<0)
{
double y;
y=pow((3*x+1),1.0/3);
return y;
}
double Derivative1(double x)
{
double y;
y=pow((3*x+1),-2.0/3);
return y;
} double Iterate2(double x) {
double y;
y=(1-x*x*x)/3.0;
1.19 817
1.23223
作五次插值,并求x1=0.46,x2=0.55,x3=0.60时的函数近似值.
1■实验目的:通过拉格朗日插值和牛顿插值的实例,了解两种求解方法,并分析 各自的优缺点。
2.算法描述:
3.源程序:
拉格朗日插值:
#include<stdio.h>
#define k2
void main()
三•实验三:分别用复化梯形公式和复化辛卜生公式计算f(x)=s in( x)/x的积分, 并与准确值比较判断精度。
1■实验目的:通过实例体会各种算法的精度。熟练掌握复化梯形,复化辛普森, 复化柯特斯求积方法的程序。

数值分析——二分法及迭代法

数值分析——二分法及迭代法

数值分析——二分法及迭代法数值分析是研究用数值方法解决数学问题的一门学科。

在数值分析中,二分法和迭代法是两种常用的数值求解方法。

本文将对二分法和迭代法进行详细介绍,并比较它们的特点和适用范围。

一、二分法二分法是一种通过将问题分解为两个子问题,并选择其中一个子问题进行求解的方法。

它适用于解决连续函数的求根问题。

二分法的基本思想是利用中值定理,通过不断缩小区间来逼近根的位置。

具体步骤如下:1.选取一个初始的区间[a,b],确保f(a)和f(b)的符号相反。

2.计算区间的中点c=(a+b)/23.判断f(c)的符号,并更新区间。

若f(c)与f(a)符号相反,则更新区间为[a,c];否则更新区间为[c,b]。

4.重复步骤2和步骤3,直到满足停止准则(例如满足一定精度要求,或达到最大迭代次数)。

5.最后得到的近似根为区间的中点c。

二分法的优点是收敛速度快,且能够保证收敛到根的位置。

然而,二分法的缺点是每次迭代只能减少一半的区间长度,所以其收敛速度相对较慢。

此外,二分法需要事先确定区间,并且要求f(a)和f(b)的符号相反,这对于一些问题来说可能并不容易实现。

因此,二分法主要适用于单峰函数求根问题。

二、迭代法迭代法是一种通过迭代逐步逼近解的方法。

它适用于一般的数值求解问题。

迭代法的基本思想是通过不断迭代的过程,将原始问题转化为一个具有相同解的等价问题,并通过逐步逼近来求解。

具体步骤如下:1.选取一个初始的近似解x_0。

2.根据迭代公式x_{k+1}=g(x_k),计算下一个近似解x_{k+1},其中g(x)是一个适当的函数。

3.判断迭代是否达到停止准则(例如满足一定精度要求,或达到最大迭代次数)。

若满足停止准则,则停止迭代;否则返回步骤2继续迭代。

4.最终得到的近似解为迭代过程中的最后一个近似解x_k。

迭代法的优点是适用范围广,可以求解一般的数值问题。

此外,迭代法的迭代公式可以根据具体问题的特点进行选择,使得迭代过程更加高效。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

作为根的初始近似。
开 始 读入a, h a x0 f (x0) y0 x0 + h x0 是 继续扫描
f (x0) y0>0
打 印 否 结 束
例1:考察方程 f ( x) x 3 x 1 0 的含根区间
x f (x)符号
0 -
0.5 -
1.0 -
1.5 +
可见,含根区间为 [1, 1.5]
由定理4.2.1知,迭代格式xk+1=(lgxk+7)/2 在[3.5,4]内收敛
局部收敛性定理
定理4.2.2 设x*为g的不动点,g(x)与g′(x)在 包含x*的某邻域U(x*) (即开区间)内连续, 且|g′(x*)|<1,则存在>0,当x0∈[x* ,x*+ ]时,迭代法(3)产生的序列 {xk} [x* - ,x*+ ]且收敛于x*. 证明略(作为练习)
Remark3:二分法不能用来求重根
§4.2 单个方程的迭代法
等价变换
f (x) = 0 f (x) 的根
x = g (x)
xk+1 = g(xk)
(3)
g (x) 的不动点
f(x)=0化为等价方程 x=g(x)的方式是不唯一 的,有的收敛,有的发散 For example:2x3-x-1=0
(1) 如果将原方程化为等价方程 x 2 x3 1
Remark:
定理条件非必要条件,而且定理4.2.1中 的压缩条件不好验证,一般来讲, 若知道迭代函数g(x)∈C1『a,b],并 且满足|g′(x)|≤ < 1,对任意的 x∈[a,b], 则g(x)是[a,b]上的压缩映射
y p1 p0
y=x y=g(x)
y p0
y=x

x x0 y y=g(x) x1 x* y=x y y=g(x) p0 x0 x*
§4.1 对分区间法 (Bisection Method )
原理:若 f(x) C[a, b],且 f (a) · (b) < f 0,则f(x) 在 (a, b) 上必有一根。
a
a12 ax1
x* b x2
b b1
停机条件: k 1 xk ε1 或 x
f ( x ) ε2
不能保证 x 的精 度
ln 2
定义f (x)
输入
a,b,
k=0
f (a) f (b)>0 否 否 m=(a+b)/2 |a-b|< 是 a=m 是 打印m, k 结束 f (a) f (b)=0

是 是
f (a) =0

否 f(a)f(b)>0 否 b=m
打印b, k
结束
打印a, k
k=k+1
x 3 4 x 2 10 0 例2 用二分法求 1 在(1,2)内的根,要求绝对误差不超过 10 2 2 解:
12
Remark1:求奇数个根
Find solutions to the equation
on the intervals [0, 4],Use the bisection method to compute a solution with an accuracy of 10-7. Determine the number of iterations to use..
2
x* x
执行步骤 1.计算f (x)在有解区间[a, b]端点处的值,f (a),f (b)。 2.计算f (x)在区间中点处的值f (x1)。 3.判断若f (x1) = 0,则x1即是根,否则检验: (1)若f (x1)与f (a)异号,则知解位于区间[a, x1], b1=x1, a1=a; (2)若f (x1)与f (a)同号,则知解位于区间[x1, b],
第四章 非线性方程的数值解法
非线性方程求根
1.根的存在性。方程有没有根?如果有根,有几个根? 2.这些根大致在哪里?如何把根隔离开来? 3.根的精确化 定理1:设函数 f (x) 在区间[a, b]上连续,如果f (a) f (b) < 0,
则方程 f (x) = 0 在[a, b]内至少有一实根x*。

p1 y=g(x) x x1 y=x
p0 p1

x x0 x*
p1

x
x1 x0 x*
x1
改进、加速收敛 /* accelerating convergence */
待定参数法: 若 | g’(x) | 1,则将 x = g(x) 等价地改造为
x x Kx Kg( x ) (1 K ) x Kg( x ) ( x ) 求K,使得 | ( x ) | | 1 K Kg( x ) | 1
在这里我们考查在区间[3.5,4]的迭代法 的收敛性
• 很容易验证:f(3.5)<0,f(4)>0 • 将方程变形成等价形式:x=(lgx+7)/2
1 g(x)= (lg( x) 7) 2 1 1 g ( x) 2 ln10 x
3.5 x 4
max | g ( x) | 0.063 1
x0 1 2
3
1 2
0.7937
x2
3
x1 1 3 1.7937 0.9644 2 2
依此类推,得 x3 = 0.9940 x4 = 0.9990 x5 = 0.9998 x6 = 1.0000 x7 = 1.0000
同样的方程
⇒ 不同的迭代格式
有不同的结果
什么形式的迭代 法能够收敛呢?
(3)k次迭代所得到的近似不动点xk与精确不动点x*有误差估计 式:
xk x xk xk 1 (6) 1 k * xk x x1 x0 (7) 1
*
§3 Fixed-Point Iteration
证明:① g(x) 在[a, b]上存在不动点?
令G(x)=g(x)-x, x∈[a,b],由条件①知 G(a)=g(a)-a≥0, G(b)=g(b)-b≤0.
已经收敛,故原方程的解为 x = 1.0000
收敛性分析
定义2 若存在常数(0≤ <1),使得对一 切x1,x2∈[a,b], 成立不等式 |g(x1)-g(x2)|≤ |x1-x2|, (5) 则称g(x)是[a,b]上的一个压缩映射, 称为压缩系数
定理4.2.1 考虑方程 x = g(x), g(x)C[a, b], 若
f(1)=-5<0 f(2)=14>0 f(1.5)>0 f(1.25)<0 f(1.375)>0 f(1.313)<0 f(1.344)<0 f(1.360)<0 f(1.368)>0
有根区间 -(1,2)+ (1,1.5) (1.25,1.5) (1.25,1.375) (1.313,1.375) (1.344,1.375) (1.360,1.375) (1.360,1.368)
a1=x1, b1=b。 反复执行步骤2、3,便可得到一系列有根区间:
(a, b), (a1, b1), …, (ak, bk), …
4、当 bk 1 ak 1 时,则 xk 1
即为根的近似。
1 ( a k bk ) 2
①简单; ② 对f (x) 要求不高(只要连续即可) .
1.画出 f(x) 的略图,从而看出曲线与x 轴交点的位臵。 f(x)
x0
a x0 h
x *
b
2.从左端点x = a出发,按某个预先选定的步长h 一步一步地向右跨,每跨一步都检验每步起点x0
和终点x0 + h的函数值,若 f ( x0 ) f ( x0 h ) 0
那么所求的根x*必在x0与x0+h之间,这里可取x0或x0+h
[0,1], [1.5, 2.5] and [3,4], 利用前面的公式可计算 迭代次数为k=23.
Remark2:要区别根与奇异点
Consider f(x) = tan(x) on the interval (0,3).Use the 20 iterations of the bisection method and see what happens. Explain the results that you obtained. (如下图)
( I ) 当 x[a, b] 时, g(x)[a, b];
( II )在[a,b]上成立不等式:|g(x1)-g(x2)|≤ |x1-x2| 。 则(1)g在[a,b]上存在惟一不动点x* (2)任取 x0[a, b],由 xk+1 = g(xk)
得到的序列 {xk}([a,b】) 收敛于x* 。
可用 | xk 1 xk | 来 控制收敛精度
这就证明了估计式(6).
(5) |xk-xk-1| = |g(xk-1)-g(xk-2)|


|x k-1-xk-2|≤…≤

k-1|x
1-x0|
联系估计式(6)可得
|xk-x*| ≤
k-1/(1-)|x1-x0|.

越小,收敛越快
即估计式(7)成立
3 则迭代格式为:xk 1 2 xk 1
取初值
x0 0
x1 2 x 1 1
3 0
x2 2 x 1 3
3 1
x3 2 x 1 55
3 2
由此可见,这种迭代格式是发散的
(2) 如果将原方程化为等价方程
仍取初值
x0 0
3
x3
x1 2
x1
f ( x ) x 3 3 x 1 0 在 (1, 2) 的实根。 例:求
相关文档
最新文档