非线性方程求根方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
根的概念
给定方程 f (x)=0,如果有a使得f(a)=0,则称a 为 f(x) =0的根 或f(x)的零点. 设有正整数m使得f(x)=(x-a)mg(x)且g(a) 0 , 则当m=2时,称a为f(x)=0的m重根; 当m=1时,称为f(x)=0的单根.
本章只讨论实根的求法.
3
重点介绍求解非线性方程的几种常见和有 效的数值方法, 简单介绍一些最基本的解法.无 论在理论上,还是在实际应用中,这些数值解法 都是对经典的解析方法的突破性开拓和补充,许 多问题的求解,在解析方法无能为力时,数值方 法则可以借助于计算机出色完成.
求方程实根 x* 的二分法过程,就是将 含根区间 [a ,b] 逐步分半,检查函数符号 的变化,以便确定含根的充分小区间。
8
示意图
a
a2
a1
x* b2
b
b1
9
二分法的步骤
用二分法(将区间对平分)求解。 令 a1 = a,b1 = b ,c1 = 1 2 (a1 +b1 ) 若 f (a1 )f (c1 ) < 0 ,则 [a1 , c1 ] 为有根区间, 否则 [c1 , b1 ] 为有根区间 记新的有根区间为 [a2 , b2 ] , 则
若 f (x 0 )?f (x 1 ) 0 则扫描成功;否则令 继续上述方法,直到成功。如果 x 1 > b 则扫描
失败。再将h 缩小,重复以上步骤。
6
例题
例 设方程 f (x ) = x 3 - x - 1,[a,b ] = [1, 2] 解:取h=0.1,扫描得:
f (1.3) = - 0.61 < 0 f (1.4) = 0.344 > 0
*
21
例题
但如果由 x = x 3 - 1 建立迭代公式
x k +1 = x k 3 - 1 k =1,2,...
仍取 x 0 = 1.5 ,则有 x 1 = 2.375 , x 2 = 12.39
{x k } 是发散序列 显然结果越来越大,
22
几何示意图
例 讨论以下计算 a (a > 0) 的算法的收敛阶。
1.364257813 1.364746094
1.364990235
-0.007989263
-0.003959102
14
迭代法基本思想
对于 f (x ) = 0 有时可以写成 x = f (x ) 形式
如:
x 3 - x - 1 = 0? x
或 x =1- x 3
x - cos x = 0 ? x
y
ì ï y =x 交点的横坐标 í ï î y = f (x )
y=x p1 y= (x)
p0
Βιβλιοθήκη Baidu
x0
x1
x*
x
19
例题
例 试用迭代法求方程
f (x ) = x 3 - x - 1 = 0
在区间 (1,2) 内的实根,初始近似值取1.5。
解:由 x = 3 x +1
建立迭代关系
k=0,1,2,3,…
即 : lim x k = 2
k
27
2.4 牛顿迭代法
2.4.1 基本思想
将 f ( x) 在 x0 点展开为Taylor展式 1 ⅱ f (x ) = f (x 0 ) + (x - x 0 )f (x 0 ) + (x - x 0 ) 2 f (x ) 2 其中x 在x 和x 0之间
有近似方程 f (x ) ? f (x 0 ) (x - x 0 )f ¢ (x 0 )
x 的近似解,则 x n - x
*
*
b-a 2n
12
例:用二分法求方程 f (x ) = x 3 + 4x 2 - 10 = 0 1 * -3 在 [1, 2] 内的解, 要求满足精度 x - x n < 10 . 2
解:为达到要求的精度,用二分法需进行
ln(b - a ) - ln e n> = 10.96... ln 2
*
此时Newton法仅有线性收敛速度.
( )
31
2.4.3 Newton法收敛的充分条件
定理 设 f (x ) Î C 2 [ a , b ]满足 (1) f (a )f (b ) < 0 ; (2) f ⅱ (x )f (x ) ? 0, x 【f (x ) 在 [ a , b ]内有根】 [ a , b ] 【f (x ) 的根唯一,凹向不变】 f(x ) [ a , b ]】 ¢ f (x )
\ 方程的有根区间为[1.3,1.4].
[1.3,1.4] 又 即 f (x ) = 0在 [1.3,1.4] 有唯一根。
7
f ' (x ) = 3x 2 - 1 > 0, x
二分法
设有非线性方程 f (x) =0
其中, f (x)为 [a ,b] 上连续函数且设
f (a) f (b)<0
不妨设方程于 [a ,b] 内仅有一个实根。
(3) f (x 0 )f ⅱ (x 0 ) > 0, $ x 0 ? [ a , b ]【f (x )=x 则 f (x )=0 在 [ a , b ]上有且仅有一个实根; 迭代公式x n +1=( f x n) 收敛于f (x )=0的根 x *。 ⅱx *) e n +1 x n +1-x * f( 且 lim 2 = lim = . 2 * n n ¢ * en 2f (x ) 轾 x - x n 臌
1骣 a x n +1 = 琪 xn + 琪 2桫 xn
24
1 a (1) j (x ) = (x + ) 解: 2 x
j
( )
1骣 a a = 琪 a+ = a 琪 2桫 a
1 a j ¢ (x ) = (1 - 2 ) j ¢ ( a) = 0 2 x 1 a ⅱ j ( a) = j ⅱ (x ) = 3 a x
方程求根
历史背景
代数方程的求根问题是一个古老的数学问 题。理论上,n次代数方程在复数域内一定有 n个根(考虑重数)。早在16世纪就找到了三次、 四次方程的求根公式,但直到19世纪才证明大 于等于5次的一般代数方程式不能用代数公式 求解,而对于超越方程就复杂的多,如果有解, 其解可能是一个或几个,也可能是无穷多个。 一般也不存在根的解析表达式。因此需要研究 数值方法求得满足一定精度要求的根的近似解。
x k +1 = 3 x k +1
计算结果如下:
20
例题
k 0 1 2 3 4 xk 1.5 1.35721 1.33086 1.32588 1.32494 K 5 6 7 8 xk 1.32476 1.32473 1.32472 1.32472
精确到小数点后五位
1 x = 1.32472 e = 10 - 5 2
]
f¢ (x ) f (x k ) x k +1 = x k f ¢ (x k )
(k = 0,1, 2, )
求解方法这种求根算法称为Newton法(切线法) 此公式称为Newton迭代公式.
ⅱ f ( x ) f (x ) ¢ j (x ) = [f ¢ (x )]2
30
牛顿迭代法
Newton法的迭代函数是 (x ) 从而 j ¢(x ) = f (x )f ⅱ
[f ¢ (x )]2
*
j (x ) = x -
f (x ) f¢ (x )
* f ( x ) = 0 由此知若 x 是 的一个单根,则在 x
附近 f ¢( x * ) =0 Newton法是局部收敛的,并且收 敛速度至少是平方收敛的.
1 * ¢ 但如果 x 是 f (x ) = 0的m>1重根,则0 < f x = 1 - < 1 m
f ( xk )
2.375 -1.796875 0.162109375 -0.848388672 -0.350982666 -0.096408844 0.032355785 -0.032149971 0.000072025 -0.016046691
[1.0 , 2.0] [1.0 , 1.5] [1.25 , 1.5] [1.25 , 1.375] [1.3125 , 1.375] [1.34375 , 1.375] [1.359375 , 1.375] [1.359375 , 1.367187500] [1.363281250 , 1.367187500] [1.363281250 , 1.365234375] [1.364257813 , 1.365234375] [1.364746094 , 1.365234375]
即最多需要11次二分。
1 1 x - x n < ? (b11 a11 ) = 0.000488281 < 10- 3 2 2
*
13
计算结果
k 1 2 3 4 5 6 7 8 9 10 11 12
[a
k
, bk ]
xk
1.5 1.25 1.375 1.3125 1.34375 1.359375 1.3671875 1.36328125 1.365243375
[a1 , b1 ] [a2 , b2 ]
且
b2 - a2 = 1 2 (b1 - a1 )
10
二分法
对 [a2 , b2 ] 重复上述做法得
[a1 , b1 ] [a2 , b2 ] ...... [an , bn ] ......
且
1 b n - an = n - 1 (b - a ) 2
4
零点定理
零点定理:
f (x设 ) ? C [a, b ] b 2 ,且 4ac f (a)f (b ) < 0 ,则方程 在区间 ( a, b) 上至少有一个根。如果 f ' ( x) 在 ( a, b) 上恒正或恒负,则此根唯一。
5
等步长扫描
用计算机求有根区间:等步长扫描法。 设 h>0是给定的步长,取 x 0 = a, x 1 = a + h , , x0 = x 1, x 1 = x 0 + h
从而知(1)是平方收敛的。
0
25
例 利用适当的迭代格式证明
k
lim 2 + 2 + ... + 2 = 2
k 个2
证:考虑迭代格式
ì ï x0 =0 í ï î x k +1 = 2 + x k ,k = 0,1, 2,...
则 ...
x1 = 2 x2 = 2+ 2 x k = 2 + 2 +... + 2
2
17
迭代法及收敛性
* lim x = x { x } 若 k 收敛,即 k k
* x = f ( x ) 则得 的一个根 x
n
lim x n +1 = lim f (x n ) = f ( lim x n ) ? x
n n
*
f (x *)
称此迭代过程收敛。
18
迭代法的几何意义
x = f (x )
11
设 所求的根为 x *, 则 x * ? [an ,bn ] n 1,2......
x * bn 即 an #
n = 1,2......
1 lim (b n - an ) = lim n - 1 (b - a ) = 0 n n 2
\
n
lim an = lim bn = x *
n
1 取 x n = (an +b n ) 为 2
3
x +1
cos x
15
迭代法及收敛性
考察方程 x = f (x ) 。 一般不能直接求出它的根。
但如果给出根的某个猜测值 x0 , 代入 x = f (x ) 中的右端得到 x 1 = f (x 0 ) ,
再以 x1为一个猜测值, 代入 x = f (x ) 的右端得 x 2 = f (x 1 ) 反复迭代得 x k +1 = f (x k ) k = 0,1,......
f (x 0 ) ¢ 如 f (x 0 ) ¹ 0 则 x 1 = x 0 f¢ (x 0 )
★
f (x n ) x n +1 = x n f¢ (x n )
28
2.4.2 牛顿迭代法的几何意义
y y=f(x)
x*
x2 x1
x0
x
29
牛顿迭代法
设方程 f (x ) = 0在根 x * 附近取初始近似根 x 0 Î [a,b 由迭代公式 j (x ) = x - f (x )
16
简单迭代法(单点迭代法) 将f (x ) = 0 变为另一种等价形式 x = f (x )。 选取 x *的某一近似值 x 0 Î [a, b ] ,则按递推 关系 x k +1 = f (x k ) k = 0,1,...... 产生的迭代序列
{xk } 。这种方法算为单点迭代法。
形如 x k +1 = f (x k , x k-1 ,x k-2 ,, ... x k-i +1 ) k = i , i +1,... i 的迭代公式称为多点迭代法。
k 个2
26
1 记f (x ) = 2 + x ,则f (x ) = 2 2 +x
'
当x 挝 [0, 2]时,f (x ) [f (0),f (2)] = [ 2, 2] [0, 2] 1 ' ' | f (x ) |? f (0) <1 2 2
因而由迭代格式产生的序列{x k }¥ k =0 收敛于方程x = 2 + x 在[0, 2]内的唯一根x * = 2,
根的概念
给定方程 f (x)=0,如果有a使得f(a)=0,则称a 为 f(x) =0的根 或f(x)的零点. 设有正整数m使得f(x)=(x-a)mg(x)且g(a) 0 , 则当m=2时,称a为f(x)=0的m重根; 当m=1时,称为f(x)=0的单根.
本章只讨论实根的求法.
3
重点介绍求解非线性方程的几种常见和有 效的数值方法, 简单介绍一些最基本的解法.无 论在理论上,还是在实际应用中,这些数值解法 都是对经典的解析方法的突破性开拓和补充,许 多问题的求解,在解析方法无能为力时,数值方 法则可以借助于计算机出色完成.
求方程实根 x* 的二分法过程,就是将 含根区间 [a ,b] 逐步分半,检查函数符号 的变化,以便确定含根的充分小区间。
8
示意图
a
a2
a1
x* b2
b
b1
9
二分法的步骤
用二分法(将区间对平分)求解。 令 a1 = a,b1 = b ,c1 = 1 2 (a1 +b1 ) 若 f (a1 )f (c1 ) < 0 ,则 [a1 , c1 ] 为有根区间, 否则 [c1 , b1 ] 为有根区间 记新的有根区间为 [a2 , b2 ] , 则
若 f (x 0 )?f (x 1 ) 0 则扫描成功;否则令 继续上述方法,直到成功。如果 x 1 > b 则扫描
失败。再将h 缩小,重复以上步骤。
6
例题
例 设方程 f (x ) = x 3 - x - 1,[a,b ] = [1, 2] 解:取h=0.1,扫描得:
f (1.3) = - 0.61 < 0 f (1.4) = 0.344 > 0
*
21
例题
但如果由 x = x 3 - 1 建立迭代公式
x k +1 = x k 3 - 1 k =1,2,...
仍取 x 0 = 1.5 ,则有 x 1 = 2.375 , x 2 = 12.39
{x k } 是发散序列 显然结果越来越大,
22
几何示意图
例 讨论以下计算 a (a > 0) 的算法的收敛阶。
1.364257813 1.364746094
1.364990235
-0.007989263
-0.003959102
14
迭代法基本思想
对于 f (x ) = 0 有时可以写成 x = f (x ) 形式
如:
x 3 - x - 1 = 0? x
或 x =1- x 3
x - cos x = 0 ? x
y
ì ï y =x 交点的横坐标 í ï î y = f (x )
y=x p1 y= (x)
p0
Βιβλιοθήκη Baidu
x0
x1
x*
x
19
例题
例 试用迭代法求方程
f (x ) = x 3 - x - 1 = 0
在区间 (1,2) 内的实根,初始近似值取1.5。
解:由 x = 3 x +1
建立迭代关系
k=0,1,2,3,…
即 : lim x k = 2
k
27
2.4 牛顿迭代法
2.4.1 基本思想
将 f ( x) 在 x0 点展开为Taylor展式 1 ⅱ f (x ) = f (x 0 ) + (x - x 0 )f (x 0 ) + (x - x 0 ) 2 f (x ) 2 其中x 在x 和x 0之间
有近似方程 f (x ) ? f (x 0 ) (x - x 0 )f ¢ (x 0 )
x 的近似解,则 x n - x
*
*
b-a 2n
12
例:用二分法求方程 f (x ) = x 3 + 4x 2 - 10 = 0 1 * -3 在 [1, 2] 内的解, 要求满足精度 x - x n < 10 . 2
解:为达到要求的精度,用二分法需进行
ln(b - a ) - ln e n> = 10.96... ln 2
*
此时Newton法仅有线性收敛速度.
( )
31
2.4.3 Newton法收敛的充分条件
定理 设 f (x ) Î C 2 [ a , b ]满足 (1) f (a )f (b ) < 0 ; (2) f ⅱ (x )f (x ) ? 0, x 【f (x ) 在 [ a , b ]内有根】 [ a , b ] 【f (x ) 的根唯一,凹向不变】 f(x ) [ a , b ]】 ¢ f (x )
\ 方程的有根区间为[1.3,1.4].
[1.3,1.4] 又 即 f (x ) = 0在 [1.3,1.4] 有唯一根。
7
f ' (x ) = 3x 2 - 1 > 0, x
二分法
设有非线性方程 f (x) =0
其中, f (x)为 [a ,b] 上连续函数且设
f (a) f (b)<0
不妨设方程于 [a ,b] 内仅有一个实根。
(3) f (x 0 )f ⅱ (x 0 ) > 0, $ x 0 ? [ a , b ]【f (x )=x 则 f (x )=0 在 [ a , b ]上有且仅有一个实根; 迭代公式x n +1=( f x n) 收敛于f (x )=0的根 x *。 ⅱx *) e n +1 x n +1-x * f( 且 lim 2 = lim = . 2 * n n ¢ * en 2f (x ) 轾 x - x n 臌
1骣 a x n +1 = 琪 xn + 琪 2桫 xn
24
1 a (1) j (x ) = (x + ) 解: 2 x
j
( )
1骣 a a = 琪 a+ = a 琪 2桫 a
1 a j ¢ (x ) = (1 - 2 ) j ¢ ( a) = 0 2 x 1 a ⅱ j ( a) = j ⅱ (x ) = 3 a x
方程求根
历史背景
代数方程的求根问题是一个古老的数学问 题。理论上,n次代数方程在复数域内一定有 n个根(考虑重数)。早在16世纪就找到了三次、 四次方程的求根公式,但直到19世纪才证明大 于等于5次的一般代数方程式不能用代数公式 求解,而对于超越方程就复杂的多,如果有解, 其解可能是一个或几个,也可能是无穷多个。 一般也不存在根的解析表达式。因此需要研究 数值方法求得满足一定精度要求的根的近似解。
x k +1 = 3 x k +1
计算结果如下:
20
例题
k 0 1 2 3 4 xk 1.5 1.35721 1.33086 1.32588 1.32494 K 5 6 7 8 xk 1.32476 1.32473 1.32472 1.32472
精确到小数点后五位
1 x = 1.32472 e = 10 - 5 2
]
f¢ (x ) f (x k ) x k +1 = x k f ¢ (x k )
(k = 0,1, 2, )
求解方法这种求根算法称为Newton法(切线法) 此公式称为Newton迭代公式.
ⅱ f ( x ) f (x ) ¢ j (x ) = [f ¢ (x )]2
30
牛顿迭代法
Newton法的迭代函数是 (x ) 从而 j ¢(x ) = f (x )f ⅱ
[f ¢ (x )]2
*
j (x ) = x -
f (x ) f¢ (x )
* f ( x ) = 0 由此知若 x 是 的一个单根,则在 x
附近 f ¢( x * ) =0 Newton法是局部收敛的,并且收 敛速度至少是平方收敛的.
1 * ¢ 但如果 x 是 f (x ) = 0的m>1重根,则0 < f x = 1 - < 1 m
f ( xk )
2.375 -1.796875 0.162109375 -0.848388672 -0.350982666 -0.096408844 0.032355785 -0.032149971 0.000072025 -0.016046691
[1.0 , 2.0] [1.0 , 1.5] [1.25 , 1.5] [1.25 , 1.375] [1.3125 , 1.375] [1.34375 , 1.375] [1.359375 , 1.375] [1.359375 , 1.367187500] [1.363281250 , 1.367187500] [1.363281250 , 1.365234375] [1.364257813 , 1.365234375] [1.364746094 , 1.365234375]
即最多需要11次二分。
1 1 x - x n < ? (b11 a11 ) = 0.000488281 < 10- 3 2 2
*
13
计算结果
k 1 2 3 4 5 6 7 8 9 10 11 12
[a
k
, bk ]
xk
1.5 1.25 1.375 1.3125 1.34375 1.359375 1.3671875 1.36328125 1.365243375
[a1 , b1 ] [a2 , b2 ]
且
b2 - a2 = 1 2 (b1 - a1 )
10
二分法
对 [a2 , b2 ] 重复上述做法得
[a1 , b1 ] [a2 , b2 ] ...... [an , bn ] ......
且
1 b n - an = n - 1 (b - a ) 2
4
零点定理
零点定理:
f (x设 ) ? C [a, b ] b 2 ,且 4ac f (a)f (b ) < 0 ,则方程 在区间 ( a, b) 上至少有一个根。如果 f ' ( x) 在 ( a, b) 上恒正或恒负,则此根唯一。
5
等步长扫描
用计算机求有根区间:等步长扫描法。 设 h>0是给定的步长,取 x 0 = a, x 1 = a + h , , x0 = x 1, x 1 = x 0 + h
从而知(1)是平方收敛的。
0
25
例 利用适当的迭代格式证明
k
lim 2 + 2 + ... + 2 = 2
k 个2
证:考虑迭代格式
ì ï x0 =0 í ï î x k +1 = 2 + x k ,k = 0,1, 2,...
则 ...
x1 = 2 x2 = 2+ 2 x k = 2 + 2 +... + 2
2
17
迭代法及收敛性
* lim x = x { x } 若 k 收敛,即 k k
* x = f ( x ) 则得 的一个根 x
n
lim x n +1 = lim f (x n ) = f ( lim x n ) ? x
n n
*
f (x *)
称此迭代过程收敛。
18
迭代法的几何意义
x = f (x )
11
设 所求的根为 x *, 则 x * ? [an ,bn ] n 1,2......
x * bn 即 an #
n = 1,2......
1 lim (b n - an ) = lim n - 1 (b - a ) = 0 n n 2
\
n
lim an = lim bn = x *
n
1 取 x n = (an +b n ) 为 2
3
x +1
cos x
15
迭代法及收敛性
考察方程 x = f (x ) 。 一般不能直接求出它的根。
但如果给出根的某个猜测值 x0 , 代入 x = f (x ) 中的右端得到 x 1 = f (x 0 ) ,
再以 x1为一个猜测值, 代入 x = f (x ) 的右端得 x 2 = f (x 1 ) 反复迭代得 x k +1 = f (x k ) k = 0,1,......
f (x 0 ) ¢ 如 f (x 0 ) ¹ 0 则 x 1 = x 0 f¢ (x 0 )
★
f (x n ) x n +1 = x n f¢ (x n )
28
2.4.2 牛顿迭代法的几何意义
y y=f(x)
x*
x2 x1
x0
x
29
牛顿迭代法
设方程 f (x ) = 0在根 x * 附近取初始近似根 x 0 Î [a,b 由迭代公式 j (x ) = x - f (x )
16
简单迭代法(单点迭代法) 将f (x ) = 0 变为另一种等价形式 x = f (x )。 选取 x *的某一近似值 x 0 Î [a, b ] ,则按递推 关系 x k +1 = f (x k ) k = 0,1,...... 产生的迭代序列
{xk } 。这种方法算为单点迭代法。
形如 x k +1 = f (x k , x k-1 ,x k-2 ,, ... x k-i +1 ) k = i , i +1,... i 的迭代公式称为多点迭代法。
k 个2
26
1 记f (x ) = 2 + x ,则f (x ) = 2 2 +x
'
当x 挝 [0, 2]时,f (x ) [f (0),f (2)] = [ 2, 2] [0, 2] 1 ' ' | f (x ) |? f (0) <1 2 2
因而由迭代格式产生的序列{x k }¥ k =0 收敛于方程x = 2 + x 在[0, 2]内的唯一根x * = 2,