数值计算方法第二章

合集下载

数值计算方法第二章

数值计算方法第二章

a12 a22 (2) 0 0
a13 a23(2) a33(3) 0
a1n a2 n (2) (3) a3n A( n ) 0 ann ( n )
(2) (3) (k) ( n) 关键a11 , a22 , a33 ,, akk , ann 0 可用归纳法说明! :
第一部分 直接解法 Gauss主元素消去法
矩阵的三角分解法
平方根法与改进6 12 x1 3x2 3x3 15 18 x 3 x x 15 1 2 3
解:
先消后两个方程的x1,得同解方程组
x1 x2 x3 6 15 x2 9 x3 57 21x2 17 x3 93
a2 n (2) ( k 1) ak 1,k ( k 1) ann a1n
det Ai( k 1) 0,(i 1, 2,, n 1) 且
由数学归纳法,存在初等方阵L1,L2,…,Ln-1, 使得
A( n)
a11 a12 a22 (2) Ln1 L2 L1 A 0 a13 ak ,k ( k ) a1n a2 n (2) ak ,n ( k ) (n) an ,n
选取 的
下面举例来说明高斯消 去法。
例1 用高斯消去法解方程组
1 2 3 x1 14 0 1 2 x 8 2 2 4 1 x3 13
解 对增广矩阵进行初等变 换
14 1 2 3 14 1 2 3 0 1 2 8 r0 1 2 ( 2 ) r 8 2 4 1 13 0 0 5 15

(完整word版)《数值计算方法》复习资料全

(完整word版)《数值计算方法》复习资料全

《数值计算方法》复习资料课程的性质与任务数值计算方法是一门应用性很强的基础课,在学习高等数学,线性代数和算法语言的基础上,通过本课程的学习及上机实习、使学生正确理解有关的基本概念和理论,掌握常用的基本数值方法,培养应用计算机从事科学与工程计算的能力,为以后的学习及应用打下良好基础。

第一章数值计算方法与误差分析一考核知识点误差的来源类型;绝对误差和绝对误差限,相对误差和相对误差限,有效数字;绝对误差的传播。

二复习要求1. 知道产生误差的主要来源。

2. 了解绝对误差和绝对误差限、相对误差和相对误差限和有效数字等概念以及它们之间的关系。

3. 知道四则运算中的误差传播公式。

三例题例1设x*= =3.1415926…近似值x=3.14=0.314×101,即m=1,它的绝对误差是-0.001 592 6…,有即n=3,故x=3.14有3位有效数字.x=3.14准确到小数点后第2位.又近似值x=3.1416,它的绝对误差是0.0000074…,有即m=1,n=5,x=3.1416有5位有效数字.而近似值x=3.1415,它的绝对误差是0.0000926…,有即m=1,n=4,x=3.1415有4位有效数字.这就是说某数有s位数,若末位数字是四舍五入得到的,那么该数有s位有效数字;例2 指出下列各数具有几位有效数字,及其绝对误差限和相对误差限:2.000 4 -0.002 00 9 000 9 000.00=2.000 4=0.200 04×101, 它的绝对误差限0.000 05=0.5×10 1―5,即解因为x1m=1,n=5,故x=2.000 4有5位有效数字. a=2,相对误差限1x 2=-0.002 00,绝对误差限0.000 005,因为m =-2,n=3,x 2=-0.002 00有3位有效数字. a 1=2,相对误差限εr ==0.002 5x 3=9 000,绝对误差限为0.5×100,因为m =4, n=4, x 3=9 000有4位有效数字,a =9,相对误差限εr ==0.000 056x 4=9 000.00,绝对误差限0.005,因为m =4,n=6,x 4=9 000.00有6位有效数字,相对误差限为εr ==0.000 000 56由x 3与x 4可以看到小数点之后的0,不是可有可无的,它是有实际意义的. 例3 ln2=0.69314718…,精确到10-3的近似值是多少?解 精确到10-3=0.001,意旨两个近似值x 1,x 2满足,由于近似值都是四舍五入得到的,要求满足,近似值的绝对误差限应是ε=0.0005,故至少要保留小数点后三位才可以。

数值计算方法(第2章)

数值计算方法(第2章)


x [1,2]
所以 ( x)是区间 [a, b]上严格单调增函数。
例题
而 (1) 3 2 1 , (2) 3 3 2
即[ (1), (2)][1,2],所以 ( x)满足条件( 1 )。
又 1 | ' ( x) || ( x 1) 3
2 3
|
1 3 4
(1) ( 2) 输入 : 有根区间 [a, b]的a, b值及精度控制量 ; if f ( a ) f (b) 0 then 返回第 1步, 重新
输入a, b值else转第3步; (3) while | a b | 时做 1 1)令x ( a b), 计算f ( x); 2 2)if f (a) f ( x) 0 then else endwhile; ( 4)输出x 1 ( a b). 2 [ a, b][ a, x]; [ a, b][ x, b].
a x13 1.365173390 本题的精确解为: a 1.36523001 ... 故绝对误差( x) x* x 0.000056 ... 二分法的区间每次只缩 小一半,因此它是一种 收敛 速度很慢的方法。
等步长扫描法求有根区间

用计算机求有根区间:等步长扫描法。 设h>0是给定的步长,取 x0 a, x1 a h ,
f ( x0 ) f ( x1 ) 0

则扫描成功;否则令
x0 x1 , x1 x0 h ,继续上述方法,直到成
功。如果 x1 b 则扫描失败。再将h 缩小,
继续以上步骤。
等步长扫描算法
算法:(求方程 f ( x) 0 的有根区间) (1) 输入 a, b, h ; (2) f 0 f (a) ; (3) x a h, f1 f ( x),若 x b 输出失败信息, 停机。 (4)若 f1 0。输出 x ,已算出方程的一个根,停 机。

数值计算方法第2章2-1节

数值计算方法第2章2-1节

(2)计算
f
(
a
2
b)

(3)若
f
(
a
2
b
)
0
,计算停止;若
f
(
a
2
b
)
f
(a)
0
,用

f
(
a
2
b)
f
(b)
0
,以
a
2
b
代替
a

a
2
b
代替
b

(4)反复执行第二步与第三步,直到区间长缩小到允许误差范围
之内,此时区间中点即可作为所求的近似解。
18
证明方程 x3 3x2 6x 1 0 在区间(0,1)内有唯一的实根,并
在[-1,-0.25],[0.5,1.25],[1.25,2]各区间内至少有一个实根。
10
2.1.3 区间二分法
定理 函数f(x)在[a,b]上单调连续,且f(a)f(b)<0, 则方程f(x)=0在区间[a,b]上有且仅有一个实根x*。
二分法的基本思想 将有根的区间二分为两个小区间,然后判断根在那 个小区间,舍去无根的小区间,而把有根的小区间 再一分为二,再判断根属于哪个更小的区间,如此 反复 ,直到求出满足精度要求的近似根。
5
有根区间
介值定理 若函数 f (x) 在[a, b] 连续,且
f (a) f (b) 0 ,则方程 f ( x) 0 在(a,b) 内至
少有一个实根。将[a, b] 称为 f (x) 的有根区间。
6
2.1.2 逐步搜索法
假设f(x)在区间[a,b]内有一
个实根x*,若 b – a较小,则可 在(a,b)上任取一点x0作为初始 近似根。

数值计算方法教案

数值计算方法教案

数值计算方法教案第一章:数值计算概述1.1 数值计算的定义与特点引言:介绍数值计算的定义和基本概念数值计算的特点:离散化、近似解、误差分析1.2 数值计算方法分类直接方法:高斯消元法、LU分解法等迭代方法:雅可比迭代、高斯-赛德尔迭代等1.3 数值计算的应用领域科学计算:物理、化学、生物学等领域工程计算:结构分析、流体力学、电路模拟等第二章:误差与稳定性分析2.1 误差的概念与来源绝对误差、相对误差和有效数字误差来源:舍入误差、截断误差等2.2 数值方法的稳定性分析线性稳定性分析:特征值分析、李雅普诺夫方法非线性稳定性分析:李模型、指数稳定性分析2.3 提高数值计算精度的方法改进算法:雅可比法、共轭梯度法等增加计算精度:闰塞法、理查森外推法等第三章:线性方程组的数值解法3.1 高斯消元法算法原理与步骤高斯消元法的优缺点3.2 LU分解法LU分解的步骤与实现LU分解法的应用与优势3.3 迭代法雅可比迭代法与高斯-赛德尔迭代法迭代法的选择与收敛性分析第四章:非线性方程和方程组的数值解法4.1 非线性方程的迭代解法牛顿法、弦截法等收敛性条件与改进方法4.2 非线性方程组的数值解法高斯-赛德尔法、共轭梯度法等方程组解的存在性与唯一性4.3 非线性最小二乘问题的数值解法最小二乘法的原理与方法非线性最小二乘问题的算法实现第五章:插值与逼近方法5.1 插值方法拉格朗日插值、牛顿插值等插值公式的构造与性质5.2 逼近方法最佳逼近问题的定义与方法最小二乘逼近、正交逼近等5.3 数值微积分数值求导与数值积分的方法数值微积分的应用与误差分析第六章:常微分方程的数值解法6.1 初值问题的数值解法欧拉法、改进的欧拉法龙格-库塔法(包括单步和多步法)6.2 边界值问题的数值解法有限差分法、有限元法谱方法与辛普森法6.3 常微分方程组与延迟微分方程的数值解法解耦与耦合方程组的处理方法延迟微分方程的特殊考虑第七章:偏微分方程的数值解法7.1 偏微分方程的弱形式介绍偏微分方程的弱形式应用实例:拉普拉斯方程、波动方程等7.2 有限差分法显式和隐式差分格式稳定性分析与收敛性7.3 有限元法离散化过程与元素形状函数数值求解与误差估计第八章:优化问题的数值方法8.1 优化问题概述引言与基本概念常见优化问题类型8.2 梯度法与共轭梯度法梯度法的基本原理共轭梯度法的实现与特点8.3 序列二次规划法与内点法序列二次规划法的步骤内点法的原理与应用第九章:数值模拟与随机数值方法9.1 蒙特卡洛方法随机数与重要性采样应用实例:黑箱模型、金融衍生品定价等9.2 有限元模拟离散化与求解过程应用实例:结构分析、热传导问题等9.3 分子动力学模拟基本原理与算法应用实例:材料科学、生物物理学等第十章:数值计算软件与应用10.1 常用数值计算软件介绍MATLAB、Python、Mathematica等软件功能与使用方法10.2 数值计算在实际应用中的案例分析工程设计中的数值分析科学研究中的数值模拟10.3 数值计算的展望与挑战高性能计算的发展趋势复杂问题与多尺度模拟的挑战重点解析本教案涵盖了数值计算方法的基本概念、误差分析、线性方程组和非线性方程组的数值解法、插值与逼近方法、常微分方程和偏微分方程的数值解法、优化问题的数值方法、数值模拟与随机数值方法以及数值计算软件与应用等多个方面。

2) 数值计算方法

2) 数值计算方法

1 R ≈ 1-2 × 10 =1- 5000
-4
即这种时间积分格式对天气尺度的波阻尼很小。 欧拉后差格式能阻尼高频振荡而对天气尺度的波影响很小, 又没有计算解,故经常使用。但它的计算量较大,且长时间地 应用对天气波也会有衰减作用,因而实际工作中往往是把它和 其他格式交替使用。
二、三层格式 这类格式在作时间积分时牵涉到三个时间层;n+1, n,n-1,故称为三层格式。其中最常用的为中央差格式(即 蛙跃格式)对(2.1)式作时间积分:
大气中的重力惯性波周期约为几小时,相当于10000秒; 积分的时间步长为几分钟,即∆t=1000秒;代入可得R= 0.88, 它表示用欧拉后差格式每作一次时间积分,重力惯 性波的振幅损失12%,因而这种时间积分格式对大气中的高频 波有很大的阻尼作用。 大尺度的天气波周期约3—4天,可取为3×100000秒; 仍取几分钟,即10000秒,代入欧拉后差公式可得:
O(Δx 2 )
四阶差商:
1 ⎛ ΔF ⎞ 1 ⎡4 ⎤ ⎛ dF ⎞ i i i i ⎜ ⎟= ⎢3 ( F+1 − F−1 ) − 6 ( F+2 − F−2 )⎦ ≈ ⎝ dx ⎠ ⎥ ⎜ ⎟ ⎝ Δx ⎠i 2Δx ⎣ i
O(Δx4)
在气象上的数值计算中,差商也常称为差分。以上几式 后面的O (Δx k ) (在上述诸式中k= 1,2或4)代表用该差商逼近 相应的微商时误差具有 (Δx) k 的量级。称k为差商精度的阶数。 利用某点及其周围点的函数值来表示该点上函数差商及其运 算的具体形式称为差分格式。在微分方程中.用差商代替微 商,则得到相应的差分方程。用差分法求微分方程的近似解 要使差分方程具有以下性质,即: 相容性: 当步长充分小时,差分方程逼近于微分方程。

数值计算方法-复习-第二章

数值计算方法-复习-第二章
有 − 1 <c<0
5
27
局部收敛性
例2.3.8:对方程x3-x2-1=0在初值x0=1.5附近建立 收敛的迭代格式,并求解,要求精确到小数点 后4位
解:构造迭代公式,写出方程的等价形式
x = 3 x2 +1
迭代格式为
xk+1 = 3 xk 2 +1
ϕ'(x) = 2x
33 (x2 +1)2
例2.3.6:求方程 x3-3x+1=0 在[0, 0.5]内的根, 精确到10-5
24
局部收敛性
定义2.2: 如果存在x* 的某个邻域△: |x-x*| ≤δ,
使迭代过程 xk+1 = ϕ (xk)对于任意初值 x0 ∈△均 收敛,则称迭代过程xk+1 = ϕ (xk)在根x* 附近具
有局部收敛性。
解:设f(x)=xex-1, 则
f(0)=-1<0, f(1)=e-1>0
因此f(x)=0在(0,1)内有根 又 f '(x) = ex + xex = ex (1+ x) > 0
因此方程f(x)=0在(0, ∞)内仅有一根
令ϕ(x) = e−x
在[0,1]上,ϕ
(x)
∈[1 e
,1]

[0,1]
30
牛顿迭代公式的建立
已知方程f (x) = 0的一个近似根x0,把f (x)在x0
处作泰勒展开
f (x) =
f (x0 ) +
f '(x0 )(x − x0 ) +
f
′′( x0 2!
)
(x

x0

数值计算方法总复习

数值计算方法总复习

数值计算方法总复习第一章算法与误差第二章非线性方程求解第三章线性代数方程求解第四章函数插值与曲线拟合第五章数值积分与数值微分第六章常微分方程的数值解法Chap.1 (1)关于数值计算方法,What,特点一、关于《数值计算方法》数值计算方法是应用数学的一个分支,又称数值分析或计算方法,它是研究数字计算机求解各种数学问题的数值方法及其理论的一门科学,是程序设计和对数值结果进行分析的依据和基础。

应用计算机解决科学计算问题包括以下几个过程:提出实际问题;建立数学模型;选用数值计算方法;程序设计和上机计算。

可见数值计算方法是进行科学计算全过程的一个重要环节。

计算机计算的特点:(1)运算速度快;(2)但只能完成加、减、乘、除和一些逻辑运算。

所以,各种复杂的数学问题------→归结为四则运算------→编程指令。

把对数学问题的解法归纳为有加、减、乘、除等基本运算,并对运算顺序有完整而准确的描述的算法称为数值计算方法或简称数值算法。

研究各种算法和相关理论的一门课程。

§1.2 误差一、误差的来源数分为两类:精确数(准确数、真值);近似数/近似值。

1)模型误差或描述误差2)测量误差(观测误差)3)截断误差(方法误差)4)舍入误差(计算误差):数值计算关心的是截断误差(方法误差)和舍入误差(计算误差)二、误差限和有效数字1. 误差限的定义设Z 是准确值Z *的某个近似值,如果根据具体测量或计算的情况,可以事先估计出误差的绝对值不超过某个正数ε:即: |Z * - Z |≤ε则称ε为近似值的误差限。

或称在允许误差ε的情况下,结果Z 是“准确的”.2. 误差限和有效数字在表示一个近似数时,常常用到“有效数字”,有效数字和误差限都是用来定量表示误差的大小,且它们之间有对应关系。

有效数字的定义:设数x 的近似值m n x x x x 10.021*⨯= , 其中 xi 是0到9之间的任一个数,但x 1≠0,i=1,2,3…,n 正整数,m 整数,若nm *|x x |-⨯≤-1021 则称x *为x 的具有n 位有效数字的近似值,x *准确到第n 位,x1x2…xn 是x *的有效数字。

数值计算方法课后习题答案

数值计算方法课后习题答案

第一章 绪论(12)1、设0>x ,x 的相对误差为δ,求x ln 的误差。

[解]设0*>x 为x 的近似值,则有相对误差为δε=)(*x r ,绝对误差为**)(x x δε=,从而x ln 的误差为δδεε=='=*****1)()(ln )(ln x x x x x , 相对误差为****ln ln )(ln )(ln x x x x rδεε==。

2、设x 的相对误差为2%,求n x 的相对误差。

[解]设*x 为x 的近似值,则有相对误差为%2)(*=x r ε,绝对误差为**%2)(x x =ε,从而nx 的误差为nn x x nxn x x n x x x **1***%2%2)()()()(ln *⋅=='=-=εε,相对误差为%2)()(ln )(ln ***n x x x nr==εε。

3、下列各数都是经过四舍五入得到的近似数,即误差不超过最后一位的半个单位,试指出它们是几位有效数字:1021.1*1=x ,031.0*2=x ,6.385*3=x ,430.56*4=x ,0.17*5⨯=x 。

[解]1021.1*1=x 有5位有效数字;0031.0*2=x 有2位有效数字;6.385*3=x 有4位有效数字;430.56*4=x 有5位有效数字;0.17*5⨯=x 有2位有效数字。

4、利用公式(3.3)求下列各近似值的误差限,其中*4*3*2*1,,,x x x x 均为第3题所给的数。

(1)*4*2*1x x x ++; [解]3334*4*2*11***4*2*1*1005.1102110211021)()()()()(----=⨯=⨯+⨯+⨯=++=⎪⎪⎭⎫ ⎝⎛∂∂=++∑x x x x x f x x x e nk k k εεεε;(2)*3*2*1x x x ;[解]52130996425.010********.2131001708255.01048488.2121059768.01021)031.01021.1(1021)6.3851021.1(1021)6.385031.0()()()()()()()()(3333334*3*2*1*2*3*1*1*3*21***3*2*1*=⨯=⨯+⨯+⨯=⨯⨯+⨯⨯+⨯⨯=++=⎪⎪⎭⎫⎝⎛∂∂=-------=∑x x x x x x x x x x x f x x x e n k k kεεεε;(3)*4*2/x x 。

数值计算方法第二章讲义ppt

数值计算方法第二章讲义ppt

一、二分法 ——算法的收敛性
二分法产生一个含根区间序列: [a, b] [a1 , b1 ] ... [ak , bk ] ...
f ( x)
其中区间[ak , bk ]的长度为:
a1
b1
1 1 x0 b bk ak (bk 1 ak 1 ) ... k (b a). a 2 2 ak bk 因此,当 k 足够大时,我们可以用 xk 作为函数 2 常用来估计k的值 f ( x)的一个根 的近似值。
if fx = = 0|(b-a)/2<Tol x break end i=i+1; if fa * fx>0 a=x; fa=fx; else b=x; end end
例2.1 用二分法求方程 f ( x) x3 x 1 0
在[1,1.5]内的实根, 要求 0.005.
解 由于 f (a) f (1) 1 0, f (b) f (1.5) 0.875 0,
因而
f ( x) 0
在区间[1,1.5]上至少存在一个根。 由误差估计式
| xk | b a 1.511 0.005 2k 1 2k
即可推出所需的迭代次数满足 k 6.
其具体过程如下:
k
0 1 2
ak
1.0000 1.2500 1.2500
bk
1.5000 1.5000 1.375
此时有误差估计:
bk ak b a xk k 1 . 2 2
bk ak b a xk k 1 . 2 2

2
k 1

ba

,
ln(b a ) ln 2 k . ln 2

(完整版)数值计算方法教案

(完整版)数值计算方法教案

《计算方法》教案课程名称:计算方法适用专业:医学信息技术适用年级:二年级任课教师:***编写时间:2011年 8月新疆医科大学工程学院张利萍教案目录《计算方法》教学大纲 (4)一、课程的性质与任务 (4)二、课程的教学内容、基本要求及学时分配 (4)三、课程改革与特色 (5)四、推荐教材及参考书 (5)《计算方法》教学日历..................................... 错误!未定义书签。

第一章绪论 .. (6)第1讲绪论有效数字 (6)第2讲误差………………………………………………………………………………第二章线性方程组的直接法 (14)第3讲直接法、高斯消去法 (14)第4讲高斯列主元消去法 (22)第5讲平方根法、追赶法 (29)第三章插值法与最小二乘法 (31)第6讲机械求积、插值型求积公式 (32)第7讲牛顿柯特斯公式、复化求积公式 (37)第8讲高斯公式、数值微分 (42)第9讲第10讲第12讲第四章数值积分与数值微分 (48)第11讲欧拉公式、改进的欧拉公式 (48)第12讲龙格库塔方法、亚当姆斯方法 (52)第13讲收敛性与稳定性、方程组与高阶方程 (56)第14讲第15讲第五章微分常微分方程的差分方法 (59)第16讲迭代收敛性与迭代加速 (60)第17讲牛顿法、弦截法 (64)第18讲第19讲第20讲第六章线性方程组的迭代法 (67)第21讲迭代公式的建立 (68)第22讲第23讲第24讲向量范数、迭代收敛性 (71)第25讲《计算方法》教学大纲课程名称:计算方法/Computer Numerical Analysis B学时/学分:54/4先修课程:高等数学、线性代数、高级语言程序设计(如:Matlab语言)适用专业:计算机科学与技术、信息管理与信息系统开课学院(部)、系(教研室):医学工程技术学院、医学信息技术专业一、课程的性质与任务计算方法是一门专业必修课。

数值计算方法教案插值方法

数值计算方法教案插值方法

复习:1.数值计算方法的含义 2.误差及误差限 3.误差与有效数字4.数值计算中应注意的问题第二章 插值方法一.插值的含义 问题提出:已知函数()y f x =在n+1个点01,,,n x x x 上的函数值01,,,n y y y ,求任意一点x '的函数值()f x '。

说明:函数()y f x =可能是未知的;也可能是已知的,但它比较复杂,很难计算其函数值()f x '。

解决方法:构造一个简单函数()P x 来替代未知(或复杂)函数()y f x =,则用()P x '作为函数值()f x '的近似值。

二、泰勒(Taylor )插值 1.问题提出:已知复杂函数()y f x =在0x 点的函数值()0f x ,求0x 附近另一点0x h +的函数值()0f x h +。

2.解决方法:构造一个代数多项式函数()n P x ,使得()n P x 与()f x 在0x x =点充分逼近。

泰勒多项式为:()()()()()()()()()200000002!!n n n f x f x P x f x f x x x x x x x n '''=+-+-++-显然,()n P x 与()f x 在0x x =点,具有相同的i 阶导数值(i=0,1,…,n )。

3.几何意义为:()n P x 与()f x 都过点()()00,x f x ;()n P x 与()f x 在点()()00,x f x 处的切线重合; ()n P x 与()f x 在点()()00,x f x 处具有相同的凹凸性;其几何意义可以由下图描述,显然函数()3f x 能相对较好地在0x 点逼近()f x 。

4.误差分析(泰勒余项定理):()()()()()()1101!n n n f P x f x x x n ξ++-=-+,其中ξ在0x 与x 之间。

5.举例:已知函数()f x ()115f 。

数值计算方法第二章方程的近似解法

数值计算方法第二章方程的近似解法
设在区间[a,b]上方程有一个根,则称该区间为 方程的一个有根区间。若在区间[a,b]上方程只有一
个根,则称该区间为方程隔根区间。
Remark:若能把隔根区间不断缩小,则可以得出根的 近似值。
三、根的隔离
基于函数f(x)的连续性质,常用的根的隔离的方
法有:描图法与逐步搜索法。
1、描图法:画出y=f(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], a1=x1, b1=b。
公式(2)
1.5 2.375 12.3965 1904.01 6.90244 3.28857 3.55651 4.49856 inf
公式(3)
1.5 1.29099 1.33214 1.32313 1.32506 1.32464 1.32473 1.32471 1.32471
公式(4)
1.5 1.9375 4.10535 36.1482 23634.7 6.60124 1.43829 1.4877 inf
间。必要时可调整步长h,总可把隔根区间全部找出。
3、根据函数单调性判断
§2.1 二分法(对分法)
一、算法
设 f ( x ) 在[a,b]上连续,f(a)f(b)<0且在[a,b]内 f(x)=0仅有一个实根 x*。二分法的基本思想是:
逐步将有根区间分半,通过判别函数值的符号, 进一步搜索有根区间,将有根区间缩小到充分小, 从而求出满足给定精度的根 x* 的近似值。 执行步骤:

《数值计算方法》课件 (2)

《数值计算方法》课件 (2)

模拟仿真
应用数值计算方法进行仿真和实 验,验证理论和验证结果。
数值计算方法的发展
历史演变
回顾数值计算方法的发展历程和重要里程碑。
未来趋势
展望数值计算方法在人工智能和大数据时代的 应用前景。
数值计算方法与其他学科的关联
1
数学
数值计算方法是数学在计算科学中的具体应用。
2
计算机科学
数值计算方法依赖于计算机科学的算法和数据结构。
2
优化算法
探讨数值计算方法的优化法,如梯度下降和共轭梯度法。
3
实际应用
展示数值计算方法在实际问题中的应用,如最优化和插值。
数值计算方法的误差分析
1 精度和稳定性
解释数值计算方法的精度 和稳定性以及其对计算结 果的影响。
2 截断误差
讨论数值计算方法中的截 断误差产生原因和如何减 小误差。
3 舍入误差
3
工程学
数值计算方法在工程学中的应用广泛,如结构分析和流体力学。
结语
数值计算方法是计算科学和工程学中的基础领域,掌握数值计算方法对于解决实际问题具有重要意义。
解释数值计算方法中的舍 入误差,以及浮点数表示 和运算的限制。
数值计算
数值计算是利用计算机进行数值计算的过程,通过数值计算方法解决实际问题,如方程求解和函数逼近。
数值计算方法的选择
决策方面
评估不同数值计算方法在特定问 题上的可行性和效果。
数据分析
比较数值计算方法在数据处理和 模型拟合中的效率和准确性。
《数值计算方法》PPT课件 (2)
数值计算方法的介绍 - 什么是数值计算方法 - 数值计算方法的应用领域 - 数值计算方法的重要性 数值计算方法的基本原理 - 数值计算方法的概念 - 常用的数值计算方法 - 数值计算方法的数学原理

数值计算方法第二章

数值计算方法第二章

第二章 非线性方程数值解法在科学计算中常需要求解非线性方程()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 k x 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)*101kk 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 kx 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 kk s x t s k s x x x t s x ϕϕ+=⎧⎪==⎪⎨-⎪=-⎪-+⎩(2.15)或者直接写成21(())(())2()k k k k k k kx x x x x x x ϕϕϕϕ+-=--+ (0,1,2,)k =可以证明Steffensen 迭代法在一定的条件下与原简单迭代法的迭代序列具有相同的极限,但Steffensen 迭代法收敛速度更快,可以达到二阶收敛.证明请参考文献[19].例 2.5 对例 2.3用Steffensen 迭代法求方程根的近似值,要求811102k k x x -+-<⨯. 解 (1) 简单迭代法 将原方程化成12(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 迭代公式.它也是一种简单迭代法,其中迭代函数21()()()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.3 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)相减22**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 ''>.则Newton 法产生的迭代序列0{}k k x ∞=单调收敛于*x ,并具有二阶收敛速度.(a)(b)(c) (d)23图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 迭代公式,有**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 上的单调性知*ˆx x =. 因此,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 ∈+∞,该迭代法均收敛.24解 (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.从表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 的下山序列.25在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()1lim 11()()()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 迭代法此时只有线性收敛速度.为了加速收敛,可以采用如下两种方法方法一 令()()()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 割线法26Newton 法每步需要计算导数值()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 .图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) 得272122(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.3 10知识结构图习 题1 用二分法求方程2sin 0x e x --=在区间[0,1]内根的近似值,精确到3位有效数字.2 方程340x x +-=在区间[1,2]内有一根,试用二分法求根的近似值,使其具有5位有效数字,至少应二分多少次.基本概念 (单根、重根、收敛阶)283 已知方程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位).8 Halley 法是加速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 =计算其根的近似值.要求准确到小数点后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 法使得它收敛更快.。

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

第二章 非线性方程数值解法在科学计算中常需要求解非线性方程()0f x =即求函数()f x 的零点.非线性方程求解没有通用的解析方法,常采用数值求解算法.数值解法的基本思想是从给定的一个或几个初始近似值出发,按某种规律产生一个收敛的迭代序列0{}k k x +∞=,使它逐步逼近于方程的某个解.本章介绍非线性方程实根的数值求解算法:二分法、简单迭代法、Newton 迭代法及其变形,并讨论它们的收敛性、收敛速度等.§ 二分法一、实根的隔离定义 设非线性方程中的()f x 是连续函数.如果有*x 使*()0f x =,则称*x 为方程的根,或称为函数()f x 的零点;如果有*()()()m f x x x g x =-,且()g x 在*x 邻域内连续,*()0g x ≠,m 为正整数,则称*x 为方程的m 重根.当1m =时,称*x 为方程的单根.非线性方程根的数值求解过程包含以下两步(1) 用某种方法确定有根区间.称仅存在一个实根的有根区间为非线性方程的隔根区间,在有根区间或隔根区间上任意值为根的初始近似值;(2) 选用某种数值方法逐步提高根的精度,使之满足给定的精度要求.对于第(1)步有时可以从问题的物理背景或其它信息判断出根的所在位置,特别是对于连续函数()f x ,也可以从两个端点函数值符号确定出有根区间.当函数()f x 连续时,区间搜索法是一种有效的确定较小有根区间的实用方法,其具体做法如下设[,]a b 是方程的一个较大有根区间,选择合适的步长()/h b a n =-,k x a kh =+,(0,1,,)k n =L .由左向右逐个计算()k f x ,如果有1()()0k k f x f x +<,则区间1[,]k k x x +就是方程的一个较小的有根区间.一般情况下,只要步长h 足够小,就能把方程的更小的有根区间分离出来;如果有根区间足够小,例如区间长度小于给定的精度要求,则区间内任意一点可视为方程的根的一个近似.例 确定出方程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 <,且方程在区间(,)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 的一半(如图所示).图 二分法示意图重复上述过程,建立如下嵌套的区间序列1122[,][,][,][,]k k a b a b a b a b =⊃⊃⊃⊃L L其中每个区间的长度都是前一个区间长度的一半,因此[,]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 →.总结得到如下收敛定理:定理 设()f x 在隔根区间[,]a b 上连续,且()()0f a f b <,则由二分法产生的序列0{}k k x +∞=收敛于方程在[,]a b 上的根*x ,并且有误差估计*1()(1,2,)2k k x x b a k -≤-=L 设预先给定根*x 的绝对误差限为ε,要求*k x x ε-≤,只要1()2k b a ε-≤成立,这样求得对分次数ln()ln ln 2b a k ε--≥.取k 为大于(ln()ln )/ln 2b a ε--的最小整数.此时k x 是方程的满足精度要求的根近似值.注:由于舍入误差和截断误差存在,利用浮点运算不可能精确计算函数值,二分法中的判断()0k f x =几乎不可能满足,取而代之为判断条件0()k f x ε<,其中0ε为根近似值的函数值允许误差限.总结以上内容,给出如下算法 算法 (二分法)输入 端点,a b 、根的绝对误差限ε、根近似值的函数值允许误差限0ε; 输出 近似解c 或失败信息;Step 1 用公式计算最大迭代次数k ; Step 2 对1,,n k =L 循环执行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 =.例 用二分法求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 =,利用二分法计算结果见表.二分法具有如下特点(1) 优点:计算简单,对函数()f x 的光滑性要求不高,只要它连续,且在两端的函数值异号,算法收敛就可以保证;(2) 缺点:只能求单实根和奇数重实根,收敛较慢,与1/2为公比的等比级数相同. 当函数()f x '连续时,方程的实重根可转换为()0()f x f x ='的实单根. 一般在求方程根近似值时不单独使用二分法,而常用它为其它数值方法提供初值.§ 简单迭代法简单迭代法是求解非线性方程根的近似值的一类重要数值方法.本节将介绍简单迭代法的基本思想、收敛条件、收敛速度以及相应的加速算法. 一、简单迭代法的基本思想简单迭代法采用逐步逼近的过程建立非线性方程根的近似值.首先给出方程根的初始近似值,然后用所构造出的迭代公式反复校正上一步的近似值,直到满足预先给出的精度要求为止.在给定的有根区间[,]a b 上,将方程等价变形为()x x ϕ=在[,]a b 上选取0x 作为初始近似值,用如下迭代公式1()k k x x ϕ+= (0,1,2,k =L )建立序列0{}k k x +∞=.如果有*lim k k x x →∞=,并且迭代函数()x ϕ在*x 的邻域内连续,对式两边取极限,得**()x x ϕ=因而*x 是的根,从而也是的根.称()x ϕ为迭代函数,所得序列0{}k k x +∞=为迭代序列.将这种求方程根近似值的方法称为简单迭代法,简称迭代法.例 试用方程3()10f x x x =--=的不同形式的变形建立迭代公式,并试求其在1.5附近根的近似值.解 利用方程的变形建立如下4种迭代公式(1) 1k x +=,(2) 311k k x x +=-(3) 1k x += (4) 3112k k k x x x ++-=取初值0 1.5x =,迭代计算,结果见表.例表明非线性方程的不同等价形式对应不同的迭代过程,从某一初值出发,有的迭代收敛快,有的收敛慢,甚至不收敛.那么迭代函数()x ϕ满足什么条件时才能保证迭代序列收敛 迭代序列0{}k k x +∞=的误差如何估计 怎样才能建立收敛速度快的迭代公式定理 若函数()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 ∈,迭代公式收敛,且*lim k k x x →∞= (3) 迭代公式有误差估计式*11k k k Lx x x x L --≤-- *101k k L x x x x L-≤--(4) **1*lim ()k k kx x x x x ϕ+→∞-'=- 证明 (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 =L ,并且有1()k k x x ϕ+=,**()x x ϕ=,二者作差,并由微分中值定理得***1()()()()k k k k x x x x x x ϕϕϕξ+'-=-=- (1,2,)k =L 其中,k ξ介于k x 与*x 之间.结合条件②,得**1k k x x L x x +-≤- (1,2,)k =L反复递推,有**2*1*1100k k k k x x L x x L x x L x x ++-≤-≤-≤-≤≤-L , (1,2,)k =L因01L <<,故*lim k k x x →∞=. (3) 由式得***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 kx x x x L+-≤--又由于111()()()()k k k k k k k x x x x x x ϕϕϕη+--'-=-=-1k k L x x -≤- (1,2,)k =L其中k η介于k x 和1k x -之间.综合式及式得误差估计*11k k k Lx x x x L--≤--由式反复递推,得111210k k k k k x x L x x L x x -----≤-≤≤-L并代入式得误差估计*11011kk k k L L x x x x x x L L--≤-≤--- (1,2,)k =L(4) 由式得*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 ϕ+→∞-'=-. 误差估计称为后验误差估计,也称为误差渐进估计,误差估计称为先验误差估计.定理条件成立时,对任意0[,]x a b ∈,迭代序列均收敛,故称定理为全局收敛性定理.下面讨论*x 邻近的收敛性,即局部收敛性.定理 设存在方程()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 ϕϕϕϕηδδ'-=-=-≤<由定理知迭代过程1()k k x x ϕ+=对任意初值*0(,)x U x δ∈均收敛. 二、迭代法的收敛阶为刻画迭代法收敛速度的快慢,引进收敛序列的收敛阶概念.定义 设迭代序列0{}k k x +∞=收敛到*x ,记*k k e x x =-,如果存在常数0c >和实数1p ≥,使得1limk pk ke c e +→∞=则称序列0{}k k x +∞=是p 阶收敛的.当1p =时,称0{}k k x +∞=为线性收敛的,此时要求01c <<;1p >为超线性收敛.p 越大,序列0{}k k x +∞=收敛到*x 越快.c 称为渐进常数,c 越小,收敛越快.所以迭代法的收敛阶是对迭代法收敛速度的一种度量. 显然,由定理(4)知,当*()0x ϕ'≠时简单迭代法线性收敛,渐进常数*()c x ϕ'=.算法 (简单迭代法)输入 初始值0x 、容许误差ε; 输出 近似解1x 或失败信息;Step 1 对1,,n m =L 循环执行Step 2~3; Step 2 10()x x ϕ=;Step 3 若10x x ε-<,则输出1x ,end ;否则01x x =,转向Step2.例 求方程()2lg 70f x x x =--=的最大实根的近似值,要求绝对误差不超过31102-⨯.解 (1)确定有根区间.方程等价形式为27lg x x -=作函数27y x =-和lg y x =的图形,如图所示,知方程的最大实根在区间[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 ϕ∈.图 函数27y x =-和lg y x =的图形因为 3.54max ()(3)0.07x L x ϕϕ≤≤''==≈,所以对于一切[3,4]x ∈有 ()(3)0.071x ϕϕ''≤≈<由定理知,迭代法收敛.(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 +++-=--+它仍然收敛到*x ,但收敛速度更快.证明请参考文献[19].2. Steffensen 迭代法Aitken 加速方案是对任意线性收敛序列0{}k k x +∞=构建的,并不限定0{}k k x +∞=如何获得.将Aitken 加速方法用于简单迭代法产生迭代序列时,得到着名的Steffensen 迭代法,具体迭代公式如下21()()(0,1,2,)()2k k k kk s x t s k s x x x t s x ϕϕ+=⎧⎪==⎪⎨-⎪=-⎪-+⎩L或者直接写成21(())(())2()k k k k k k kx x x x x x x ϕϕϕϕ+-=--+ (0,1,2,)k =L可以证明Steffensen 迭代法在一定的条件下与原简单迭代法的迭代序列具有相同的极限,但Steffensen 迭代法收敛速度更快,可以达到二阶收敛.证明请参考文献[19].例 对例 用Steffensen 迭代法求方程根的近似值,要求811102k k x x -+-<⨯. 解 (1) 简单迭代法 将原方程化成12(10/(4))x x =+,建立迭代公式121104k k x x +⎛⎫= ⎪+⎝⎭ 易验证该迭代公式在区间[1,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 +⎧⎛⎫⎪= ⎪+⎪⎝⎭⎪⎪⎛⎫⎨==⎪⎪+⎝⎭⎪-⎪=-⎪-+⎩L(1) 取初值0 1.5x =,简单迭代法和Steffensen 迭代法计算结果见表. 注意:Steffensen 迭代法每一迭代步的计算量大约是原简单迭代法计算量的两倍.表 简单迭代法和Steffensen 迭代法计算结果§ Newton 迭代法Newton 迭代法是求解非线性方程根的近似值的一种重要数值方法.其基本思想是将非线性函数()f x 逐步线性化,从而将非线性方程近似地转化为一系列线性方程来求解.下面讨论其格式的构造、收敛性、收敛速度以及有关变形. 一、Newton 迭代法的构造设k x 是方程的某根的一个近似值,将函数()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 '+-=近似非线性方程.设()0k f x '≠,则用线性方程的根作为非线性方程根的新近似值,即定义1()()k k k k f x x x f x +=-' 上式即是着名的Newton 迭代公式.它也是一种简单迭代法,其中迭代函数()()()f x x x f x ϕ=-' Newton 迭代法具有明显的几何意义(如图所示).方程()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 迭代法也称为切线法.二、收敛性定理 设*x 是方程的单根,在*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 ξ'''==+-+- 其中k ξ介于*x 与k x 之间.又由Newton 迭代公式有 10()()()k k k k f x f x x x +'=+-式与式相减**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 +→∞''-=≠'- 由迭代法收敛阶的定义知,Newton 迭代法至少具有二阶收敛速度.上述定理给出了Newton 法局部收敛性,它对初值要求较高,初值必须充分靠近方程根时才可能收敛,因此在实际应用Newton 法时,常常需要试着寻找合适的初值.下面的定理则给出Newton 法在有根区间上全局收敛的一个充分条件.定理 设*x 是方程在区间[,]a b 上的根且()f x ''在[,]a b 上存在,如果(1) 对于任意[,]x a b ∈有,()0f x '≠()0f x ''≠; (2) 选取初值0[,]x a b ∈,使00()()0f x f x ''>.则Newton 法产生的迭代序列0{}k k x ∞=单调收敛于*x ,并具有二阶收敛速度.(a)(b)(c) (d)图 定理的几何解释证明 满足定理条件(1)共有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 迭代公式,有**21()()2()n n n n f x x x x f x ξ+''=--' 式右端的第二项大于零,因此*1n x x +>.由数学归纳法知*k x x >,(0,1,2,)k =L . 其次证明0{}k k x ∞=单调递减.由()0f x '>,*k x x >,*()0f x =知,()0k f x >,()0k f x '>,于是Newton 迭代公式的第二项大于零,从而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 上的单调性知*ˆx x =. 因此,Newton 法产生的迭代序列0{}k k x ∞=单调收敛于*x ,利用式及式知该Newton 迭代序列二阶收敛.算法 (Newton 迭代法)输入 初始近似值0x 、 容许误差ε; 输出 近似解1x 或失败信息;Step 1 对1,,n m =L 循环执行Step 2~3; Step 2 1000()/()x x f x f x '=-;Step 3 若10x x ε-<,则输出1x ,end ;否则01x x =,转向step2.例 利用非线性方程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 +-=-=+=L其中00x >.(2) 判断收敛性在区间(0,)+∞内,()20f x x '=>,()20f x ''=>,当选取初值0)x ∈+∞时,存在足够大的M,使得0]x M ∈.由定理知,该迭代公式产生的迭代序列0{}k k x ∞=都收敛于当选取初值0x ∈时,100013()2x x x x =+>>这样,从1x 起,以后的(2)k x k ≥. 故该迭代公式对任何初值00x >都收敛. (3) 取初值02x =,迭代计算,结果见表.从表可见,迭代4 1.73205080756888L . 三、Newton 迭代法的变形Newton 迭代格式构造容易,迭代收敛速度快,但对初值的选取比较敏感,要求初值充分接近真解,另外对重根收敛速度较慢(仅有线性收敛速度),而且当函数复杂时,导数计算工作量大.下面从不同的角度对Newton 法进行改进. 1 Newton 下山算法Newton 迭代法的收敛性依赖于初值0x 的选取,如果0x 偏离*x 较远,则Newton 迭代法有可能发散,从而在实际应用中选出较好的初值有一定难度,而Newton 下山法则是一种降低对初值要求的修正Newton 迭代法.方程的根*x 也是()f x 的最小值点,若把()f x 看成()f x 在x 处的高度,则*x 是山谷的最低点.若序列0{}k k x ∞=满足单调性条件1()()k k f x f x +<则称0{}k k x ∞=为称为()f x 的下山序列.在Newton 迭代法中引入下山因子(0,1]λ∈,将Newton 迭代公式修正为1()(0,1,2,)()k k k k f x x x k f x λ+=-='L适当选取下山因子λ,使得单调性条件成立,即称为Newton 下山法.对下山因子的选取是逐步探索进行的.一般地,从1λ=开始反复将因子λ的值减半进行试算,一旦单调性条件成立,则称“下山成功”;反之,如果在上述过程中找不到使条件成立的下山因子λ,则称“下山失败”,这时可对k x 进行扰动或另选初值0x ,重新计算. 2 针对重根情形的加速算法假设*x 是方程的(2)m ≥重根,并且存在函数()g x ,使得有 **()()(),()0m f x x x g x g x =-≠式中()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()1lim 11()()()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 ϕ'<<,由定理知Newton 迭代法此时只有线性收敛速度.为了加速收敛,可以采用如下两种方法方法一 令()()()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 +'=-='''-L它至少二阶收敛.方法二 将Newton 迭代函数改为()()()f x x x mf x ϕ=-' 这时*()0x ϕ'=,由此得到加速迭代公式1()(0,1,2,)()k k k k f x x x mk f x +=-='L3 割线法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 +--=---上式即是割线法的迭代公式.割线法也具有明显的几何意义,如图所示,依次用割线方程11()()()()k k k k k k f x f x y f x x x x x ---=+--的零点逐步近似曲线方程()0f x =的零点.割线法的收敛速度比Newton 法稍慢一点,可以证明其收敛阶约为,证明请参考文献[4].此外在每一步计算时需要前两步的信息1,k k x x -,即这种迭代法也是两步法.两步法在计算前需要提供两个初始值0x 与1x .图 割线法的几何意义例 已知方程42()440f x x x =-+=有一个二重根*x =,分别用Newton 法和重根Newton 法和求其近似值,要求611102n n x x ---≤⨯解32()48,()128f x x x f x x '''=-=-,2()2()()4f x x x f x xμ-==',2m =. 由Newton 法得221232(0,1,2,)44k k k k k kx x x x k x x +-+=-==L由Newton 法 得2122(2)4(0,1,2,)22k k kk k k k x x x x x k x x +-=-==++L由Newton 法 得22122(0,1,2,)22k k k k k kx x x x k x x +-+=-==L利用上述三种迭代格式,取初值0 1.4x =,分别计算,结果见表.表知识结构图习 题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 =L ,要求准确到小数点后4位). 8 Halley 法是加速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 =计算其根的近似值.要求准确到小数点后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 法使得它收敛更快.。

相关文档
最新文档