数值分析10-方程求根的迭代法.
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
具体做法
[a1, b1] [a2 , b2 ] [a3, b3]
以 此 类 推
y
a3
a2
b2 2
x2
a1
oa
x
y f (x) bx
a2
a1
b1 2
x1
x0
a
2
b
b1
b2
b3
由二分法的过程知
(1) [a, b] [a1, b1] [a2 , b2 ] [ak , bk ] , f (ak ). f (bk ) 0, x* [ak ,bk ],
例2 求方程 f (x) x3 11.1x2 38.8x 41.77 0 的有根 区间. 对 f (x) 0 的根进行搜索计算,
解 表7 -1 计算结果
x
0123456
f (x)的符号
由此可知方程的有根区间为 [1,2],[3,4],[5,6].
4.1.2 二分法
欲使
x*xk
(bk
ak
)
/
2
(b
a)
/
2k
1
1 2
1 2 k 1
0.005,
只需 k 6 ,即只要二分6次,便能达到预定的精度.
k ak
bk
xk
f ( xk )符号Leabharlann 0 1.0 1.5 1.25
1 1.25
1.375
2
1.375 1.3125
3 1.3125
1.3438
x*。
(b) 有如下的误差估计
|
xk
x*
|
1 1 L
• 1828年17岁的法国数学家伽罗华(E·Galois 1811-1832)写出了划时代的论 文“关于五次方程的代数解法问题”,指出即使在公式中容许用n次方 根,并用类似算法求五次或更高次代数方程的根是不可能的
• 文章呈交法兰西科学院后,因辈份太低遭到冷遇,且文稿丢失。1830年 伽罗华再进科学院递稿,得到泊松院士的判词“完全不能理解”。
第四章 方程求根的迭代法
• 远在公元前1700年的古巴比伦人就已有关于一、二次方程的解法。 《九章算术》(公元前50~100年)其中“方程术”有联立一次方程组的一 般解法。
• 1535年意大利数学家坦特格里亚(TorTaglia)发现了三次方程的解法, 卡当(H·Cardano)从他那里得到了这种解法,于1545年在其名著《大法》 中公布了三次方程的公式解,称为卡当算法。
(1) a (x) b 对一切 x[a, b] 都成立
(2) 0 L < 1,使得 | ’(x) | L 对 x[a, b] 成立
则有
(a) 对任意 x0[a, b],由 xk+1 = (xk) 产生的迭代序列
xk
k0
均收敛到
(x) 在
[a,
b]
中的唯一不动点
超越函数 不能表示为多项式的函数
如 (x)=3x5-2x4+8x2-7x+1 (x)=e2x+1-xln(sinx)-2
高次代数方程
超越方程
如果实数 x *满足 f (x*) 0,则称 x *是方程(1.1)的 根,或称 x *是f (x)的零点.
若f (x)可分解为 f (x) (x x*)m g(x), 其中 m为正整数,且 g(x*) 0. 则称 x *为方程(1.1)的m 重根,或 x *为 f (x) 的 m重零点,m 1 时为单根. 结论 若 x *是 f (x)的 m重零点,且 g(x) 充分光滑,则
(2)逐步搜索法
先确定方程f(x)=0的所有实根所在的区间为[a,b],从 x0=a 出发,以步长 h=(b-a)/n 其中n是正整数,在[a,b]内取定节点:
xi=x0+ih (i=0,1,2,……,n)
计算f(xi)的值,依据函数值异号及实根的个数确定有根区 间,通过调整步长,总可找到所有有根区间。
• 但在以后的几十年中仍然没有找出高次代数方程的公式解。一直到18 世纪,法国数学家拉格朗日用根置换方法统一了二、三、四方程的解 法。
• 但求解五次方程时未能如愿,开始意识到有潜藏其中的奥妙, 用现代术 语表示就是置换群理论问题。
• 在继续探索5次以上方程解的艰难历程中,第一个重大突破的是挪威数 学家阿贝尔(N·Abel1802-1829) 1824年阿贝尔发表了“五次方程代数 解法不可能存在”的论文,但并未受到重视,连数学大师高斯也未理 解这项成果的重要意义。
• 后来伽罗华命运不佳,投考名校巴黎工科大学落榜,屈就高等师院,并 卷入政事两次入狱,被开除学籍,又决斗受伤,死于1832年。决斗前, 他把关于五次代数求解的研究成果写成长信,留了下来。
• 十四年后,法国数学家刘维尔(J·Liouville)整理并发表了 伽罗华的遗作,人们才意识到这项近代数学发展史上的重 要成果的宝贵。
注:用二分法求根,最好先给出 f (x) 草图以确定根的大 概位置。或用搜索程序,将[a, b]分为若干小区间,对每一 个满足 f (ak)·f (bk) < 0 的区间调用二分法程序,可找出区 间[a, b]内的多个根,且不必要求 f (a)·f (b) < 0 。
迭代
迭代法的基本思函数想
基
同解
• 后来卡当的学生弗瑞里(Ferrari)又提出了四次方程的解法。此成果更 激发了数学家们的情绪,但在以后的二个世纪中,求索工作始终没有 成效,导致人们对高次代数方程解的存在性产生了怀疑。
• 1799年,高斯证明了代数方程必有一个实根或复根的定理,称此为代 数基本定理,并由此可以立刻推理n次代数方程必有n个实根或复根。
f (x) 0
x
(x)
迭代 公式
xk1 ( xk )
本 思
?转换是
给定初值
x0
序列x0 x1 xn1 xn
路 否唯一
lim
n
xn
x*
(x*) x*
存在
等价于
f ( x* ) 0 x*为( x)的不动点
几何 y x
意义
y
(
x
)
转换例子
4.1 方程求根与二分法
4.1.1 引言 单变量非线性方程的一般形式
f (x) 0
(1.1)
其中 x R, f (x) C[a, b], [a, b] 也可以是无穷区间.
f(x)是高次多项式函数或超越函数 如果函数 f (x)是多项式函数,即
f ( x) a0 xn a1 xn1 an1 x an (a0 0), (1.2) 其中 a0 0, ai (i 0,1,, n)为实数,则称方程(1.1)为n 次代数方程.
f ( x*) f ( x*) f ( (m1) x*) 0, f (m)( x*) 0.
n次方程在复数域有且只有 n个根(含重根,m 重根为m个根). 超越方程 ex/10 sin 10x 0,
它在整个 x轴上有无穷多个解,若 x 取值范围不同,解也 不同,因此讨论非线性方程(1.1)的求解必须强调 x 的定 义域,即 x 的求解区间 [a, b].
求解方程f(x)= 0的近似根的一种常用的简单方法。 原理 设函数f(x)在闭区间[a,b]上连续,且f(a)f(b)<0,则 f(x)= 0
在(a,b)内必有实根区间。 基本思想
逐步将区间二等分, 通过判断区间端点f(x)的符号, 逐步将 有根区间缩小, 直至有根区间足够地小, 便可求出满足精 度要求的近似根。
?1828年17岁的法国数学家伽罗华egalois18111832写出了划时代的论文关于五次方程的代数解法问题指出即使在公式中容许用写出了划时代的论文关于五次方程的代数解法问题指出即使在公式中容许用n次方根并用类似算法求五次或更高次代数方程的根是不可能的次方根并用类似算法求五次或更高次代数方程的根是不可能的?文章呈交法兰西科学院后因辈份太低遭到冷遇且文稿丢失
非线性问题一般不存在直接的求解公式,要使用迭代法.
本章将介绍常用的求解非线性方程的近似根的几种数值解法 通常方程根的数值解法大致分为三个步骤进行:
① 判定根的存在性。即方程有没有根?如果有根,有几个 根? ② 确定根的分布范围。即将每一个根用区间隔离开来,这 个过程实际上是获得方程各根的初始近似值。
?哪种转换方法好
几何含义
y
y=x
p1 p0
y=g(x)
x
x0
x1 x*
y p0
y=x
y=g(x) p1
x
x0
x*
x1
几何含义
y
y= (x) y = x
p0
p1
x x1 x0 x*
y
y=(x) p0
y=x
p1
x x0 x* x1
压缩映像定理
定理 设 (x)C[a, b] 且可导,若
2
2
计算过程结束,否则检验.
若 f ( a b ) f (a) 0 ,则以 a b 代替 b,否则以
2
2
a b 代替 a.
2
反复执行步骤2和步骤3,直到区间 [a, b] 长度小于允许
误差 , 此时中点 a b 即为所求近似根. 2
y
xb
开始 输 入 a , b,ε
(a+b)/2 x
4
1.3438 1.3281
5
1.3281 1.3203
6 0.3203
1.3242
优点 不管有根区间多大,总能求出满足精度要求的根, 且对函数f(x)的要求不高,只要连续即可,计算亦简单。
缺点 二分法对多个零点的情况,只能算出其中一个零点。 即使 f(x)在[a, b]上有零点,也未必有 f(a) f(b)<0。
画出y=f(x)的略图,从而看出曲线与x轴交点的大致位置。 也可将f(x)=0等价变形为g1(x)=g2(x)的形式,y=g1(x)与 y=g2(x)两曲线交点的横坐标所在的子区间即为含根区间。
例1 求方程3x-1-cosx=0的有根区间。
方程等价变形为3x-1=cosx,
y=3x-1与y=cosx的图像只有一个交点位于[0.5,1]内。
例:已知方程 x3-6x2+9x-2=0 在 [3,4] 内有一根,考虑迭代
(1) x = 1(x) = x3-6x2+10x-2 ;
(2) x 2( x) ( x3 9x 2 ) 6 ;
(3)
x
3(x)
x
x3 6x2 9x 3x2 12x
9
2
;
(4) x 4( x) 3 6x2 9x 2 ;
③ 根的精确化。将根的初始近似值按某种方法逐步精确化, 直到满足预先要求的精度为止.
根的存在性定理——闭区间上连续函数的介值定理 有根区间
设 f(x)∈C[a, b], 且 f(a) f(b)<0, 存在ξ∈(a,b) ,使 f(ξ)=0.
如果f(x)在[a,b]上还是单调递增或递减的,则f(x)=0仅有一 个实根。 如何求方程 f ( x) 0的有根区间? (1)描图法
(2) (3)
bk
ak
bk 1 ak 1 2
ba 2k
xk
ak
bk 2
作为根的近似
可得一个近似根的序列 x0 , x1, x2 , xk ,,
且 x*xk (bk ak )/2 (ba)/ 2k1,
(1.3)
(4) 要使
x * xk
,
k ln(b a) ln 1
f(a) f(x )<0 ?
|b-a|< ε
0 y
输 出x 结束
n
x a
n
例4 求方程
f (x) x3 x 1 0
在区间 [1.0,1.5]内的一个实根,要求准确到小数点后第2位.
解 a 1.0, b 1.5 f (a) 0, f (b) 0
x0 1.25 f (x0 ) 0 a1 x0 1.25, b1 b 1.5 得到新的有根区间 [a1, b1].
• 38年后,即1870年,法国数学家若当(C·Jordan)在专著 《论置换与代数方程》中阐发了伽罗华的思想,一门现代 数学的分支—群论诞生了。
• 在前几个世纪中,曾开发出一些求解代数方程的有效算法, 它们构成了数值分析中的古典算法。至于超越方程则不存 在一般的求根方式。
在科学研究的数学问题中更多的是非线性问题, 它们又常常归结为非线性方程或非线性方程组的 求解问题。
ln 2
只要二分足够多次(即 k 充分大),便有
x * xk , 这里 为预定的精度.
例3 用二分法求方程 x3 x 1 0 在区间 [1,1.5] 上的根,误差
限为 102,问至少需对分多少次?
解: a 1, b 1.5, 102;
k ln(b a) ln 1
ln 2
ln(1.5 1) ln102 1 4.64
ln 2 k 5
二分法的算法 步骤1 准备 计算f (x) 在有根区间[a, b] 端点处的值
f (a), f (b).
步骤2 二分 计算 f (x) 在区间中点 a b 处的值
2
f ( a b ). 2
步骤3 判断 若 f ( a b ) 0 ,则 a b 即是根,
[a1, b1] [a2 , b2 ] [a3, b3]
以 此 类 推
y
a3
a2
b2 2
x2
a1
oa
x
y f (x) bx
a2
a1
b1 2
x1
x0
a
2
b
b1
b2
b3
由二分法的过程知
(1) [a, b] [a1, b1] [a2 , b2 ] [ak , bk ] , f (ak ). f (bk ) 0, x* [ak ,bk ],
例2 求方程 f (x) x3 11.1x2 38.8x 41.77 0 的有根 区间. 对 f (x) 0 的根进行搜索计算,
解 表7 -1 计算结果
x
0123456
f (x)的符号
由此可知方程的有根区间为 [1,2],[3,4],[5,6].
4.1.2 二分法
欲使
x*xk
(bk
ak
)
/
2
(b
a)
/
2k
1
1 2
1 2 k 1
0.005,
只需 k 6 ,即只要二分6次,便能达到预定的精度.
k ak
bk
xk
f ( xk )符号Leabharlann 0 1.0 1.5 1.25
1 1.25
1.375
2
1.375 1.3125
3 1.3125
1.3438
x*。
(b) 有如下的误差估计
|
xk
x*
|
1 1 L
• 1828年17岁的法国数学家伽罗华(E·Galois 1811-1832)写出了划时代的论 文“关于五次方程的代数解法问题”,指出即使在公式中容许用n次方 根,并用类似算法求五次或更高次代数方程的根是不可能的
• 文章呈交法兰西科学院后,因辈份太低遭到冷遇,且文稿丢失。1830年 伽罗华再进科学院递稿,得到泊松院士的判词“完全不能理解”。
第四章 方程求根的迭代法
• 远在公元前1700年的古巴比伦人就已有关于一、二次方程的解法。 《九章算术》(公元前50~100年)其中“方程术”有联立一次方程组的一 般解法。
• 1535年意大利数学家坦特格里亚(TorTaglia)发现了三次方程的解法, 卡当(H·Cardano)从他那里得到了这种解法,于1545年在其名著《大法》 中公布了三次方程的公式解,称为卡当算法。
(1) a (x) b 对一切 x[a, b] 都成立
(2) 0 L < 1,使得 | ’(x) | L 对 x[a, b] 成立
则有
(a) 对任意 x0[a, b],由 xk+1 = (xk) 产生的迭代序列
xk
k0
均收敛到
(x) 在
[a,
b]
中的唯一不动点
超越函数 不能表示为多项式的函数
如 (x)=3x5-2x4+8x2-7x+1 (x)=e2x+1-xln(sinx)-2
高次代数方程
超越方程
如果实数 x *满足 f (x*) 0,则称 x *是方程(1.1)的 根,或称 x *是f (x)的零点.
若f (x)可分解为 f (x) (x x*)m g(x), 其中 m为正整数,且 g(x*) 0. 则称 x *为方程(1.1)的m 重根,或 x *为 f (x) 的 m重零点,m 1 时为单根. 结论 若 x *是 f (x)的 m重零点,且 g(x) 充分光滑,则
(2)逐步搜索法
先确定方程f(x)=0的所有实根所在的区间为[a,b],从 x0=a 出发,以步长 h=(b-a)/n 其中n是正整数,在[a,b]内取定节点:
xi=x0+ih (i=0,1,2,……,n)
计算f(xi)的值,依据函数值异号及实根的个数确定有根区 间,通过调整步长,总可找到所有有根区间。
• 但在以后的几十年中仍然没有找出高次代数方程的公式解。一直到18 世纪,法国数学家拉格朗日用根置换方法统一了二、三、四方程的解 法。
• 但求解五次方程时未能如愿,开始意识到有潜藏其中的奥妙, 用现代术 语表示就是置换群理论问题。
• 在继续探索5次以上方程解的艰难历程中,第一个重大突破的是挪威数 学家阿贝尔(N·Abel1802-1829) 1824年阿贝尔发表了“五次方程代数 解法不可能存在”的论文,但并未受到重视,连数学大师高斯也未理 解这项成果的重要意义。
• 后来伽罗华命运不佳,投考名校巴黎工科大学落榜,屈就高等师院,并 卷入政事两次入狱,被开除学籍,又决斗受伤,死于1832年。决斗前, 他把关于五次代数求解的研究成果写成长信,留了下来。
• 十四年后,法国数学家刘维尔(J·Liouville)整理并发表了 伽罗华的遗作,人们才意识到这项近代数学发展史上的重 要成果的宝贵。
注:用二分法求根,最好先给出 f (x) 草图以确定根的大 概位置。或用搜索程序,将[a, b]分为若干小区间,对每一 个满足 f (ak)·f (bk) < 0 的区间调用二分法程序,可找出区 间[a, b]内的多个根,且不必要求 f (a)·f (b) < 0 。
迭代
迭代法的基本思函数想
基
同解
• 后来卡当的学生弗瑞里(Ferrari)又提出了四次方程的解法。此成果更 激发了数学家们的情绪,但在以后的二个世纪中,求索工作始终没有 成效,导致人们对高次代数方程解的存在性产生了怀疑。
• 1799年,高斯证明了代数方程必有一个实根或复根的定理,称此为代 数基本定理,并由此可以立刻推理n次代数方程必有n个实根或复根。
f (x) 0
x
(x)
迭代 公式
xk1 ( xk )
本 思
?转换是
给定初值
x0
序列x0 x1 xn1 xn
路 否唯一
lim
n
xn
x*
(x*) x*
存在
等价于
f ( x* ) 0 x*为( x)的不动点
几何 y x
意义
y
(
x
)
转换例子
4.1 方程求根与二分法
4.1.1 引言 单变量非线性方程的一般形式
f (x) 0
(1.1)
其中 x R, f (x) C[a, b], [a, b] 也可以是无穷区间.
f(x)是高次多项式函数或超越函数 如果函数 f (x)是多项式函数,即
f ( x) a0 xn a1 xn1 an1 x an (a0 0), (1.2) 其中 a0 0, ai (i 0,1,, n)为实数,则称方程(1.1)为n 次代数方程.
f ( x*) f ( x*) f ( (m1) x*) 0, f (m)( x*) 0.
n次方程在复数域有且只有 n个根(含重根,m 重根为m个根). 超越方程 ex/10 sin 10x 0,
它在整个 x轴上有无穷多个解,若 x 取值范围不同,解也 不同,因此讨论非线性方程(1.1)的求解必须强调 x 的定 义域,即 x 的求解区间 [a, b].
求解方程f(x)= 0的近似根的一种常用的简单方法。 原理 设函数f(x)在闭区间[a,b]上连续,且f(a)f(b)<0,则 f(x)= 0
在(a,b)内必有实根区间。 基本思想
逐步将区间二等分, 通过判断区间端点f(x)的符号, 逐步将 有根区间缩小, 直至有根区间足够地小, 便可求出满足精 度要求的近似根。
?1828年17岁的法国数学家伽罗华egalois18111832写出了划时代的论文关于五次方程的代数解法问题指出即使在公式中容许用写出了划时代的论文关于五次方程的代数解法问题指出即使在公式中容许用n次方根并用类似算法求五次或更高次代数方程的根是不可能的次方根并用类似算法求五次或更高次代数方程的根是不可能的?文章呈交法兰西科学院后因辈份太低遭到冷遇且文稿丢失
非线性问题一般不存在直接的求解公式,要使用迭代法.
本章将介绍常用的求解非线性方程的近似根的几种数值解法 通常方程根的数值解法大致分为三个步骤进行:
① 判定根的存在性。即方程有没有根?如果有根,有几个 根? ② 确定根的分布范围。即将每一个根用区间隔离开来,这 个过程实际上是获得方程各根的初始近似值。
?哪种转换方法好
几何含义
y
y=x
p1 p0
y=g(x)
x
x0
x1 x*
y p0
y=x
y=g(x) p1
x
x0
x*
x1
几何含义
y
y= (x) y = x
p0
p1
x x1 x0 x*
y
y=(x) p0
y=x
p1
x x0 x* x1
压缩映像定理
定理 设 (x)C[a, b] 且可导,若
2
2
计算过程结束,否则检验.
若 f ( a b ) f (a) 0 ,则以 a b 代替 b,否则以
2
2
a b 代替 a.
2
反复执行步骤2和步骤3,直到区间 [a, b] 长度小于允许
误差 , 此时中点 a b 即为所求近似根. 2
y
xb
开始 输 入 a , b,ε
(a+b)/2 x
4
1.3438 1.3281
5
1.3281 1.3203
6 0.3203
1.3242
优点 不管有根区间多大,总能求出满足精度要求的根, 且对函数f(x)的要求不高,只要连续即可,计算亦简单。
缺点 二分法对多个零点的情况,只能算出其中一个零点。 即使 f(x)在[a, b]上有零点,也未必有 f(a) f(b)<0。
画出y=f(x)的略图,从而看出曲线与x轴交点的大致位置。 也可将f(x)=0等价变形为g1(x)=g2(x)的形式,y=g1(x)与 y=g2(x)两曲线交点的横坐标所在的子区间即为含根区间。
例1 求方程3x-1-cosx=0的有根区间。
方程等价变形为3x-1=cosx,
y=3x-1与y=cosx的图像只有一个交点位于[0.5,1]内。
例:已知方程 x3-6x2+9x-2=0 在 [3,4] 内有一根,考虑迭代
(1) x = 1(x) = x3-6x2+10x-2 ;
(2) x 2( x) ( x3 9x 2 ) 6 ;
(3)
x
3(x)
x
x3 6x2 9x 3x2 12x
9
2
;
(4) x 4( x) 3 6x2 9x 2 ;
③ 根的精确化。将根的初始近似值按某种方法逐步精确化, 直到满足预先要求的精度为止.
根的存在性定理——闭区间上连续函数的介值定理 有根区间
设 f(x)∈C[a, b], 且 f(a) f(b)<0, 存在ξ∈(a,b) ,使 f(ξ)=0.
如果f(x)在[a,b]上还是单调递增或递减的,则f(x)=0仅有一 个实根。 如何求方程 f ( x) 0的有根区间? (1)描图法
(2) (3)
bk
ak
bk 1 ak 1 2
ba 2k
xk
ak
bk 2
作为根的近似
可得一个近似根的序列 x0 , x1, x2 , xk ,,
且 x*xk (bk ak )/2 (ba)/ 2k1,
(1.3)
(4) 要使
x * xk
,
k ln(b a) ln 1
f(a) f(x )<0 ?
|b-a|< ε
0 y
输 出x 结束
n
x a
n
例4 求方程
f (x) x3 x 1 0
在区间 [1.0,1.5]内的一个实根,要求准确到小数点后第2位.
解 a 1.0, b 1.5 f (a) 0, f (b) 0
x0 1.25 f (x0 ) 0 a1 x0 1.25, b1 b 1.5 得到新的有根区间 [a1, b1].
• 38年后,即1870年,法国数学家若当(C·Jordan)在专著 《论置换与代数方程》中阐发了伽罗华的思想,一门现代 数学的分支—群论诞生了。
• 在前几个世纪中,曾开发出一些求解代数方程的有效算法, 它们构成了数值分析中的古典算法。至于超越方程则不存 在一般的求根方式。
在科学研究的数学问题中更多的是非线性问题, 它们又常常归结为非线性方程或非线性方程组的 求解问题。
ln 2
只要二分足够多次(即 k 充分大),便有
x * xk , 这里 为预定的精度.
例3 用二分法求方程 x3 x 1 0 在区间 [1,1.5] 上的根,误差
限为 102,问至少需对分多少次?
解: a 1, b 1.5, 102;
k ln(b a) ln 1
ln 2
ln(1.5 1) ln102 1 4.64
ln 2 k 5
二分法的算法 步骤1 准备 计算f (x) 在有根区间[a, b] 端点处的值
f (a), f (b).
步骤2 二分 计算 f (x) 在区间中点 a b 处的值
2
f ( a b ). 2
步骤3 判断 若 f ( a b ) 0 ,则 a b 即是根,