非线性方程的求根方法1
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
x xk
*
xk x
*
1 2
k 1
(b a )
,
,否则继续对分。
10
10 0 例 用二分法求 1 在(1,2)内的根,要求绝对误差不超过 10 2 解: f(1)=-5<0 有根区间 中点 x n x 1 1.5 f(2)=14>0 -(1,2)+ x 2 1 . 25 f(1.5)>0 (1,1.5) x 3 1 . 375 f(1.25)<0 (1.25,1.5) x 4 1 . 313 f(1.375)>0 (1.25,1.375) x 5 1 . 344 f(1.313)<0 (1.313,1.375) x 6 1 . 360 f(1.344)<0 (1.344,1.375) f(1.360)<0 (1.360,1.375) x 7 1 . 368 f(1.368)>0 (1.360,1.368) x 8 1 . 364 x
* n * n n
( 0<L<1 )
所以,
lim x n x
n
*
故迭代格式收敛.
25
| x n x | | x n x n 1 x n 1 x |
* *
| x n x n 1 | | x n 1 x | | x n x n 1 | L | x n x |
3
1 . 5 1 1 . 35721
– x1≠x0,再将x1代入得
x2
3
x1 1
3
1 . 35721 1 1 . 33086
– x2≠x1,再将x2代入得
x3
3
x2 1
3
1 . 33086 1 1 . 32588
14
– 如此下去,这种逐步校正的过程称为迭代过程。这里用的 公式称为迭代公式,即 k=0,1,2,…… – 迭代结果见下表。仅取六位数字,x7与x8相同,即认为x8是 方程的根。 x*≈x8=1.32472 k k xk xk
其中,ξ介于 x1* 和 x2* 之间. 由定理条件 | ( x ) | L 1 可得, | x x | | x x |
* 1 * 2 * 1 * 2
矛盾,这说明只可能有 x1* = x2*.
23
定理(全局收敛性) 设(x)C[a,b]且满足以下 两个条件:
– (1)对于任意x [a,b],有a≤(x)≤b; –(2)若(x)在[a,b]一阶连续,且存在常数0<L<1,使得对任 意x [a,b],成立 | `(x)| ≤L
• 性质:
– f(an)· n)<0; f(b – bn – an = (b – a)/ 2n
8
定理 设x*为方程f(x)=0在[a,b]内唯一根,且f(x) 满足f(a)f(b)<0,则由二分法产生的第n个区间 [an, bn] 的中点xn满足不等式
xn x *
证明:
xn x *
27
定理(局部收敛性) 设x*为(x)的不动点, `(x)在x*的某邻域连续,且|`(x*)|<1,则不动 点迭代法xk+1=(xk )局部收敛。 证明:根据连续函数性质,因`(x)连续,存在x* 的某邻域R:|x-x*| ≤,对任意x R, |`(x)| ≤ L<1,且 |(x)-x*| = | (x)-(x*)| = |`(ξ)| | x- x*| ≤ L | x- x*| ≤ | x- x*| ≤ 即对任意x R, 总有(x) R。 由全局收敛性定义知,迭代过程 xk+1=(xk )对于 任意初值x0 R均收敛。
bk a k 1 2
k
(b a )
当k趋于无穷时趋于0。即若二分过程无限继续下去, 这些区间最后必收敛于一点x*,即方程的根。
7
Bisection Method
每次二分后,取有根区间的中点xk= (ak+bk) /2 作为根的近似值,则可得一近似根序列: x0, x1, x2, …该序列必以根x*为极限。 实际计算中,若给定充分小的正数0和允许误 差限1,当|f(xn)|< 0或bn- an< 1时,均可取x* xn。
则对任意x0 [a,b],由xn+1=(xn )得到的迭代序 列{xn }收敛到(x)的不动点x *,并有误差估计:
| x n x |
*
1 1 L
| x n 1 x n |
xn x *
L
n
1 L
x1 x 0
24
证明:
x n ( x n 1 ) * * x (x )
20
存在性与迭代法的收敛性
定理(存在性) 设(x)C[a,b]且满足以下两 个条件:
– (1)对于任意x [a,b],有a≤(x)≤b; –(2)若(x)在[a,b]一阶连续,且存在常数 0<L<1,使得对任意x [a,b],成立
| ’(x)| ≤L 则(x)在[a,b]上存在唯一的不动点x*。
– 代数方程: f(x)=a0+a1x+……+anxn (an0) – 超越方程 :f(x)中含三角函数、指数函数、或其他超 越函数。
• 用数值方法求解非线性方程的步骤:
– (1)找出有根区间;(只含一个实根的区间称隔根 区间) – (2)近似根的精确化。从隔根区间内的一个或多个 点出发,逐次逼近,寻求满足精度的根的近似值。
* *
( 1 L ) | x n x | | x n x n 1 |
*
| x n x |
*
1 1 L
| x n 1 x n |
反复递推,可得误差估计式
xn x * L
n
1 L
x1 x 0
26
注:定理给出的收敛性称全局收敛性, 实际应用时通常只在不动点x*邻近考察其收敛 性,称局部收敛性。 • 定义 设(x)有不动点x*,若存在x*的某邻域R: |x-x*| ≤,对任意x0 R,迭代过程xk+1=(xk )产 生的序列{xk } R且收敛到x*,则称不动点迭代 法xk+1=(xk )局部收敛。
3
• 方程求解是科学计算中一个重要的研究对象; • 几百年前就已经找到了代数方程中二次至五次方 程的求解公式; • 但是,对于更高次数的代数方程目前仍无有效的精 确解法; • 对于无规律的非代数方程的求解也无精确解法; • 因此,研究非线性方程的数值解法成为必然。
4
• 非线性方程的一般形式: f(x)=0
– (1)若f(x0)f(a)>0,则x*在x0右侧,令a1=x0, b1=b; – (2)若f(x0)f(a)<0,则x*在x0左侧,令a1=a, b1= x0。
6
以[a1, b1]为新的隔根区间,且仅为[a,b]的一半,对[a1, b1]重复前过程,得新的隔根区间[a2, b2],如此二分 下去,得一系列隔根区间: [a,b] [a1, b1] [a2, b2] …… [ak, bk] …… 其中每个区间都是前一区间的一半,故[ak, bk] 的长度:
*
| x n x | | ( x n 1 ) ( x ) |
* *
( ) || x n 1 x * | |
*
| x n x | L | x n 1 x | | x n x | L | x 0 x |
* n *
lim | x n x | lim L | x 0 x | 0
3 2
4x
2
11
二分法求解非线性方程的优缺点 • 计算过程简单,收敛性可保证; • 对函数的性质要求低,只要连续即可。 • 收敛速度慢; • 不能求复根和重根; • 调用一次求解一个[a,b]间的多个根无法 求得。
12
Fixed-Point Iteration
• 不动点迭代法 • 不动点的存在性与迭代法的收敛性 • 迭代收敛的加速方法
所以,存在x*,使得 ( x *) 0 , x*即为不动点.
22
唯一性证明:
设有 x1*≠ x2*, 使得 ( x1 ) x1 ,
* *
( x 2 ) x ,则 2
* *
* ( ) || x1* x 2 | | x x | | ( x ) ( x ) | | * 1 * 2 * 1 * 2
ba 2
n 1
bn a n 2
ba 2
n 1
9
1.先验误差估计:
1 2
k 1
利用误差估计定理,令
得
k ln( b a ) ln ln 2
xk x
*
(b a )
从而得到对分次数k,取xk作为根得近似值x*。
2.后验误差估计: 给定ε,每步检查 若成立,则取
x k 1
3
xk 1
0 1 2 3 4
1.5 1.35721 1.33086 1.32588 1.32494
5 6 7 8
1.32476 1.32473 1.32472 1.32472
15
Fixed-Point Iteration
• 将连续函数方程f(x)=0改写为等价形式:x=(x) 其中(x)也是连续函数,称为迭代函数。 • 不动点:若x*满足f(x*)=0,则x*=(x*);反之,若 x*=(x*) ,则f(x*)=0 ,称x*为(x)的一个不动点。 • 不动点迭代: x k 1 ( x k ) (k=0,1,……) 若对任意 x0[a,b],由上述迭代得序列{xk},有极限
3 k
17
收敛的迭代法
y
y=x
y=(x)
Q0
Q1 Q2 P x* P1 P2 x2 x1
P0
0
x0 x
18
发散的迭代法
y
Q0 Q1 y=x y=(x) P
P0
P1
0
P2 x2 x1 x0 x* x
19
Remark:可以通过不同的途径将f(x)=0化为 x=φ(x)的形式,从而构造不同的迭代公式,得到 不同的迭代序列。在所有这些构造的迭代公式中 形成的序列中,有的序列是收敛的,而有些是发 散的。 问题:如何选取合适的迭代函数φ(x) ? 迭代函数φ(x)应满足什么条件,序列{xk}收 敛? 怎样加速序列{xk}的收敛?
5
Bisection Method 二分法 介值定理 设函数f(x)在区间[a,b]连续,且 f(a)f(b)<0,则方程f(x)=0在区间(a,b)内至少有一 个根。 二分法的基本思想: 假定f(x)=0在[a,b]内有唯一单实根x*,考察 有根区间[a,b],取中点x0=(a+b)/2,若f(x0)=0, 则x*= x0 ,否则,
Solutions of Nonlinear Equations 非线性方程的求根方法
1
Bisection Method方程求根的二分法 Fixed-Point Iteration迭代法及其收敛性 Newton Method of Nonlinear Equations Newton迭代法
2
• 在实际应用中有许多非线性方程的例子,例 如 • (1)在光的衍射理论(the theory of diffraction of light)中,需要求x-tanx=0的根 • (2)在行星轨道( planetary orbits)的计算 中,对任意的a和b,需要求x-asinx=b的根 • (3) 在数学中,需要求n次多项式xn + a1 xn1+...+a n-1 x + an =0的根
lim x k x *
k
则称迭代过程收敛,且x*=(x*)为(x)的不动点。
16
y=x
几何意义:
x (x)
y ( x)
y x y (x)
x2 x1 x0
迭代法并不总令人满意,如将前述方程x3-x-1=0改写为 另一等价形式: 3 x x 1 建迭代公式: x k 1 x 1 仍取初值x0=1.5,则有x1=2.375, x2=12.396,x3=1904, 结果越来越大。此时称迭代过程发散。
21
证 若 ( a ) a 或 ( b ) b ,显然 ( x ) 有不动点
设 ( a ) a , ( b ) b 则有 ( a ) a , ( b ) b 记 ( x) ( x) x
即 ( x *) x *
则有 ( Βιβλιοθήκη ) ( b ) 013
迭代法的基本思想
• 迭代法是一种逐次逼近的方法,用某个固定公式反复 校正根的近似值,使之逐步精确化,最后得到满足精 度要求的结果。 • 例:求方程 x3-x-1=0 在 x=1.5 附近的一个根。
– 将所给方程改写成 x 3 x 1 – 假设初值x0=1.5是其根,代入得
x1
3
x0 1
*
xk x
*
1 2
k 1
(b a )
,
,否则继续对分。
10
10 0 例 用二分法求 1 在(1,2)内的根,要求绝对误差不超过 10 2 解: f(1)=-5<0 有根区间 中点 x n x 1 1.5 f(2)=14>0 -(1,2)+ x 2 1 . 25 f(1.5)>0 (1,1.5) x 3 1 . 375 f(1.25)<0 (1.25,1.5) x 4 1 . 313 f(1.375)>0 (1.25,1.375) x 5 1 . 344 f(1.313)<0 (1.313,1.375) x 6 1 . 360 f(1.344)<0 (1.344,1.375) f(1.360)<0 (1.360,1.375) x 7 1 . 368 f(1.368)>0 (1.360,1.368) x 8 1 . 364 x
* n * n n
( 0<L<1 )
所以,
lim x n x
n
*
故迭代格式收敛.
25
| x n x | | x n x n 1 x n 1 x |
* *
| x n x n 1 | | x n 1 x | | x n x n 1 | L | x n x |
3
1 . 5 1 1 . 35721
– x1≠x0,再将x1代入得
x2
3
x1 1
3
1 . 35721 1 1 . 33086
– x2≠x1,再将x2代入得
x3
3
x2 1
3
1 . 33086 1 1 . 32588
14
– 如此下去,这种逐步校正的过程称为迭代过程。这里用的 公式称为迭代公式,即 k=0,1,2,…… – 迭代结果见下表。仅取六位数字,x7与x8相同,即认为x8是 方程的根。 x*≈x8=1.32472 k k xk xk
其中,ξ介于 x1* 和 x2* 之间. 由定理条件 | ( x ) | L 1 可得, | x x | | x x |
* 1 * 2 * 1 * 2
矛盾,这说明只可能有 x1* = x2*.
23
定理(全局收敛性) 设(x)C[a,b]且满足以下 两个条件:
– (1)对于任意x [a,b],有a≤(x)≤b; –(2)若(x)在[a,b]一阶连续,且存在常数0<L<1,使得对任 意x [a,b],成立 | `(x)| ≤L
• 性质:
– f(an)· n)<0; f(b – bn – an = (b – a)/ 2n
8
定理 设x*为方程f(x)=0在[a,b]内唯一根,且f(x) 满足f(a)f(b)<0,则由二分法产生的第n个区间 [an, bn] 的中点xn满足不等式
xn x *
证明:
xn x *
27
定理(局部收敛性) 设x*为(x)的不动点, `(x)在x*的某邻域连续,且|`(x*)|<1,则不动 点迭代法xk+1=(xk )局部收敛。 证明:根据连续函数性质,因`(x)连续,存在x* 的某邻域R:|x-x*| ≤,对任意x R, |`(x)| ≤ L<1,且 |(x)-x*| = | (x)-(x*)| = |`(ξ)| | x- x*| ≤ L | x- x*| ≤ | x- x*| ≤ 即对任意x R, 总有(x) R。 由全局收敛性定义知,迭代过程 xk+1=(xk )对于 任意初值x0 R均收敛。
bk a k 1 2
k
(b a )
当k趋于无穷时趋于0。即若二分过程无限继续下去, 这些区间最后必收敛于一点x*,即方程的根。
7
Bisection Method
每次二分后,取有根区间的中点xk= (ak+bk) /2 作为根的近似值,则可得一近似根序列: x0, x1, x2, …该序列必以根x*为极限。 实际计算中,若给定充分小的正数0和允许误 差限1,当|f(xn)|< 0或bn- an< 1时,均可取x* xn。
则对任意x0 [a,b],由xn+1=(xn )得到的迭代序 列{xn }收敛到(x)的不动点x *,并有误差估计:
| x n x |
*
1 1 L
| x n 1 x n |
xn x *
L
n
1 L
x1 x 0
24
证明:
x n ( x n 1 ) * * x (x )
20
存在性与迭代法的收敛性
定理(存在性) 设(x)C[a,b]且满足以下两 个条件:
– (1)对于任意x [a,b],有a≤(x)≤b; –(2)若(x)在[a,b]一阶连续,且存在常数 0<L<1,使得对任意x [a,b],成立
| ’(x)| ≤L 则(x)在[a,b]上存在唯一的不动点x*。
– 代数方程: f(x)=a0+a1x+……+anxn (an0) – 超越方程 :f(x)中含三角函数、指数函数、或其他超 越函数。
• 用数值方法求解非线性方程的步骤:
– (1)找出有根区间;(只含一个实根的区间称隔根 区间) – (2)近似根的精确化。从隔根区间内的一个或多个 点出发,逐次逼近,寻求满足精度的根的近似值。
* *
( 1 L ) | x n x | | x n x n 1 |
*
| x n x |
*
1 1 L
| x n 1 x n |
反复递推,可得误差估计式
xn x * L
n
1 L
x1 x 0
26
注:定理给出的收敛性称全局收敛性, 实际应用时通常只在不动点x*邻近考察其收敛 性,称局部收敛性。 • 定义 设(x)有不动点x*,若存在x*的某邻域R: |x-x*| ≤,对任意x0 R,迭代过程xk+1=(xk )产 生的序列{xk } R且收敛到x*,则称不动点迭代 法xk+1=(xk )局部收敛。
3
• 方程求解是科学计算中一个重要的研究对象; • 几百年前就已经找到了代数方程中二次至五次方 程的求解公式; • 但是,对于更高次数的代数方程目前仍无有效的精 确解法; • 对于无规律的非代数方程的求解也无精确解法; • 因此,研究非线性方程的数值解法成为必然。
4
• 非线性方程的一般形式: f(x)=0
– (1)若f(x0)f(a)>0,则x*在x0右侧,令a1=x0, b1=b; – (2)若f(x0)f(a)<0,则x*在x0左侧,令a1=a, b1= x0。
6
以[a1, b1]为新的隔根区间,且仅为[a,b]的一半,对[a1, b1]重复前过程,得新的隔根区间[a2, b2],如此二分 下去,得一系列隔根区间: [a,b] [a1, b1] [a2, b2] …… [ak, bk] …… 其中每个区间都是前一区间的一半,故[ak, bk] 的长度:
*
| x n x | | ( x n 1 ) ( x ) |
* *
( ) || x n 1 x * | |
*
| x n x | L | x n 1 x | | x n x | L | x 0 x |
* n *
lim | x n x | lim L | x 0 x | 0
3 2
4x
2
11
二分法求解非线性方程的优缺点 • 计算过程简单,收敛性可保证; • 对函数的性质要求低,只要连续即可。 • 收敛速度慢; • 不能求复根和重根; • 调用一次求解一个[a,b]间的多个根无法 求得。
12
Fixed-Point Iteration
• 不动点迭代法 • 不动点的存在性与迭代法的收敛性 • 迭代收敛的加速方法
所以,存在x*,使得 ( x *) 0 , x*即为不动点.
22
唯一性证明:
设有 x1*≠ x2*, 使得 ( x1 ) x1 ,
* *
( x 2 ) x ,则 2
* *
* ( ) || x1* x 2 | | x x | | ( x ) ( x ) | | * 1 * 2 * 1 * 2
ba 2
n 1
bn a n 2
ba 2
n 1
9
1.先验误差估计:
1 2
k 1
利用误差估计定理,令
得
k ln( b a ) ln ln 2
xk x
*
(b a )
从而得到对分次数k,取xk作为根得近似值x*。
2.后验误差估计: 给定ε,每步检查 若成立,则取
x k 1
3
xk 1
0 1 2 3 4
1.5 1.35721 1.33086 1.32588 1.32494
5 6 7 8
1.32476 1.32473 1.32472 1.32472
15
Fixed-Point Iteration
• 将连续函数方程f(x)=0改写为等价形式:x=(x) 其中(x)也是连续函数,称为迭代函数。 • 不动点:若x*满足f(x*)=0,则x*=(x*);反之,若 x*=(x*) ,则f(x*)=0 ,称x*为(x)的一个不动点。 • 不动点迭代: x k 1 ( x k ) (k=0,1,……) 若对任意 x0[a,b],由上述迭代得序列{xk},有极限
3 k
17
收敛的迭代法
y
y=x
y=(x)
Q0
Q1 Q2 P x* P1 P2 x2 x1
P0
0
x0 x
18
发散的迭代法
y
Q0 Q1 y=x y=(x) P
P0
P1
0
P2 x2 x1 x0 x* x
19
Remark:可以通过不同的途径将f(x)=0化为 x=φ(x)的形式,从而构造不同的迭代公式,得到 不同的迭代序列。在所有这些构造的迭代公式中 形成的序列中,有的序列是收敛的,而有些是发 散的。 问题:如何选取合适的迭代函数φ(x) ? 迭代函数φ(x)应满足什么条件,序列{xk}收 敛? 怎样加速序列{xk}的收敛?
5
Bisection Method 二分法 介值定理 设函数f(x)在区间[a,b]连续,且 f(a)f(b)<0,则方程f(x)=0在区间(a,b)内至少有一 个根。 二分法的基本思想: 假定f(x)=0在[a,b]内有唯一单实根x*,考察 有根区间[a,b],取中点x0=(a+b)/2,若f(x0)=0, 则x*= x0 ,否则,
Solutions of Nonlinear Equations 非线性方程的求根方法
1
Bisection Method方程求根的二分法 Fixed-Point Iteration迭代法及其收敛性 Newton Method of Nonlinear Equations Newton迭代法
2
• 在实际应用中有许多非线性方程的例子,例 如 • (1)在光的衍射理论(the theory of diffraction of light)中,需要求x-tanx=0的根 • (2)在行星轨道( planetary orbits)的计算 中,对任意的a和b,需要求x-asinx=b的根 • (3) 在数学中,需要求n次多项式xn + a1 xn1+...+a n-1 x + an =0的根
lim x k x *
k
则称迭代过程收敛,且x*=(x*)为(x)的不动点。
16
y=x
几何意义:
x (x)
y ( x)
y x y (x)
x2 x1 x0
迭代法并不总令人满意,如将前述方程x3-x-1=0改写为 另一等价形式: 3 x x 1 建迭代公式: x k 1 x 1 仍取初值x0=1.5,则有x1=2.375, x2=12.396,x3=1904, 结果越来越大。此时称迭代过程发散。
21
证 若 ( a ) a 或 ( b ) b ,显然 ( x ) 有不动点
设 ( a ) a , ( b ) b 则有 ( a ) a , ( b ) b 记 ( x) ( x) x
即 ( x *) x *
则有 ( Βιβλιοθήκη ) ( b ) 013
迭代法的基本思想
• 迭代法是一种逐次逼近的方法,用某个固定公式反复 校正根的近似值,使之逐步精确化,最后得到满足精 度要求的结果。 • 例:求方程 x3-x-1=0 在 x=1.5 附近的一个根。
– 将所给方程改写成 x 3 x 1 – 假设初值x0=1.5是其根,代入得
x1
3
x0 1