第7章-非线性方程与方程组的数值解法

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

xk1 xk ε1 或 f ( xk1) f ( xk ) ε2
不能保证 x 的精度
2
x*
x
4
二分法算法
给定区间[a,b] ,求f(x)=0 在该区间上的根x. 输入: a和b; 容许误差 TOL; 最大对分次数 Nmax. 输出: 近似根 x. Step 1 Set k = 1; Step 2 Compute x=(a+b)/2; Step 3 While ( k Nmax) do steps 4-6
第七章 非线性方程迭代解法
代数方程的求根问题是一个古老的数学问题。理论上,n 次代数方程在复数域内一定有 n 个根(考虑重数)。早在16世 纪就找到了三次、四次方程的求根公式,但直到19世纪才证明 大于等于5次的一般代数方程式不能用代数公式求解,而对于 超越方程就复杂的多,如果有解,其解可能是一个或几个,也 可能是无穷多个。一般也不存在根的解析表达式。因此需要研 究数值方法求得满足一定精度要求的根的近似解。
(或 f ( x) 0 )则这样的 在 [a,b] 内唯一。
2
§1 二分法
原理:若 f C[a, b],且 f (a) ·f (b) < 0,则 f 在 (a, b) 上至 少有一实根。
基本思想:逐步将区间分半,通过判别区间端点函数值的符号, 进一步搜索有根区间,将有根区间缩小到充分小,从而求
x4 1.365230013 x29 1.36523001133
法4
x1 1.34840
x2 1.36738
x3 1.36496
x4 1.36526
x4 1.37517
x5 1.365225

x11 1.365230013
Th 考虑方程 x = φ(x), 若
根,精确到小数点后第2位,问至少需对分多少次?
解:
a 1,b 1.5, 0.005;
1 2k 1
1.5

1

0.005
2k1 100
k6
7
k ak 0 1.0 1 1.25 2 3 1.3125 4 5 6 1.3203
bk 1.5
1.375
1.3438 1.3281
| xk1 xk | | (xk ) (xk1) | | (ξk )(xk xk1) |
L | xk xk1 | ...... Lk | x1 x0 |

lim
k
x xk1 x xk
( x )
?
L 越 小 收敛越快
Step 7 Output the solution of equation: x; STOP.
5
由二分法的过程可知:
1、 a,b a1,b1 ak ,bk
f ak f bk 0, x ak ,bk
2、
1 bk ak 2
Step 4 If f(x)=0 or |b-a| < TOL , STOP; Output the solution x.
Step 5 If x*f(a)<0 , Set b=x; Else Set a=x;
Step 6 Set k=k+1; Compute x =(a+b)/2 ;Go To Step 3 ;
bk1 ak1

1 2k b a
3、xk ak
误差 分析
2
bk
,且
x xk
bk ak 2

ba 2k 1
,
k

0,1,
2,
4、对分次数的计算公式:
x xk
1 2k1
ba

ln b a ln
k
1
ln 2
6
例1:用二分法求方程 x3 x 1 0在区间 [1,1.5] 上的
y
y= φ(x) y = x
p0
p1
x1 x0 x*
x
11
y p0
y=x

y= φ(x) p1
x0
x*
y
y= φ(x) p0
x x1
y=x

p1
x x0 x* x1
例2:已知方程 x3 4x2 10 0在[1, 2]上有一个根(正根)
下面选取5种迭代格式:
1、x x x3 4x2 10 即 ( x) x x3 4x2 10
2、4x2
10 x3 x 1
10 x3
1
2即
x 1
10 x3
1 2
2
2
1
1
3、x2

10 x

4x
x

10 x

4
x

2



x



10 x

4
x

2
1
4、x


10 4 x

2
1



x



10 4 x
STOP;
Step 5 Set i ++; Step 6 Set x0 = x ; /* 更新 x0 */
Step 7 Output (The method failed after Nmax iterations); /*不成功 */
STOP.
17
二、局部收敛性 /*Local Convergence*/
出满足给定精度的根 x的近似值。
[a1, b1] [a2 , b2 ] [a3 , b3]
以 此 类 推
y
a3
a2
b2 2

x2
a1

oa



x
y f (x) bx
a2

a1 b1 2

x1
3
x0

a
2
b

b1
b2
b3
W终h止en法to则st?op?
a
xa1 x*
xb2 b
18
Th
设 x 为 的不动点, x 在 x 的某邻域连续,
且 x L 1 ,则迭代法(*)局部收敛。
证明:因为 x在 x的某邻域连续,存在邻域 N ( x ) [x , x ]
( x) L 1 ( ( x ) L 1)
敛于φ(x) 在[a, b]上的唯一不动点。并且有误差估计式:
1
| x * xk | 1 L | xk1 xk |

|
x
*

xk
|

Lk 1 L
|
x1

x0
|
( k = 1, 2, … )
且存在极限 lim x * xk1 x * ( x) 连续时
k x * xk
xk 1.25 1.375 1.3125 1.3438 1.3281 1.3203 1.3242
f(xk)符号 − + − + + − −
8
优点
①简单; ② 对f (x) 要求不高(只要连续即可) .
缺点
①无法求复根及偶重根 ②收敛慢
注:用二分法求根,最好先给出 f (x) 草图以确定根的大 概位置,或用搜索程序,将[a, b]分为若干小区间,对每一 个满足 f (ak)·f (bk) < 0 的区间调用二分法程序,可找出区 间[a, b]内的多个根,且不必要求 f (a)·f (b) < 0 。
9
§2 不动点迭代法及其收敛性
一、不动点迭代 /*Fixed-Point Iteration*/
等价变换
f (x) = 0
x = φ(x)(迭代函数)
f (x) 的根x
φ(x) 的不动点 x
xk1 ( xk ) k 0,1, 2,
(*)
从一个初值 x0 出发,计算 x1 =φ(x0), x2=φ(x1), …,
lim x * xk1 lim (ξk )(x * xk ) (x*)
k x * xk k
x * xk
注:条件 ( II ) 可改为 在[a, b] 满足Lipschitz条件, 定理结论仍然成立。
16
算法: 不动点迭代
给定初始近似值 x0 ,求x = φ(x) 的解. 输入: 初始近似值 x0; 容许误差 TOL; 最大迭代次数 Nmax. 输出: 近似解 x 或失败信息.

2
5、 x

x

x3 4x 2 10 3x2 8x

(x) x f (x)
f ( x)
12
取 x0 1.5 计算结果如下:
法1
法2
法3
x1 0.875
x1 1.28695 x1 0.81650
x2 6.732
x2 1.40254 x2 2.99691
Def (局部收敛性 )
若存在 的不动点 x的一个闭邻域 N ( x ) [ x , x ]
0对任意的 x0 N ( x
产生的序列 xk 均收敛于
) ,由迭代法 xk1 ( xk ), k
x ,则称该迭代法局部收敛。
0,1,
注解: 局部收敛性特点:假定解存在,且肯定存在解的一个邻域,使 得对其中所有初始值,由迭代生成的序列收敛于解。 半局部收敛特点:不知道解存在,但指出要从满足一定(通常 很强)条件的初始值出发,保证收敛于某一(临近)解。 全局(整体)收敛:肯定在全空间或至少其中一个很大的部分 中,无论从何处出发,都能保证收敛于一个解。
Lipschitz条件成 立的充分条件
( I ) 当 x[a, b] 时, φ(x)[a, b];
( II ) 0 L < 1 使得 ( x) L 1对 x[a, b] 成立。
则任取 x0[a, b],由 xk+1 = φ(xk) 得到的序列
xk
收 k 0

xk+1
=φ(xk),



xk
k0
收敛,即存在
x*
使得

lim
k
xk

x *,且
φ 连续,则由
lim
kΒιβλιοθήκη Baidu
xk 1

lim
k
xk

知 x* = φ (x* ),即x* 是 φ 的不动点,也就是f 的根。
10
几何意义
y
p1 p0
y=x y= φ(x)

x
x0
x1 x*
Step 1 Set i = 1;
当 x 很大时,此
Step 2 While ( i Nmax) do steps 3-6
处可改为 x x0 TOL
Step 3 Set x = φ(x0); /* 计算 xi */
x
Step 4 If | x x0 | < TOL then Output (x); /*成功*/
1
求方程 f (x) 0 几何意义 y
y f (x)
a
x*
o
b
x
基本定理
Th 如果函数 f ( x) 在 [a,b] 上连续,且 f (a) f (b) 0
则至少有一个数 使得 f ( ) 0 ,若同时f ( x) 的一阶
导数 f ( x) 在 [a,b] 内存在且保持定号,即 f ( x) 0
(x* x)(1(ξ)) 0 而 | (ξ) | 1 x* x
③ 当k 时, xk 收敛到 x* ? | x * xk | | (x*) (xk1) | | (ξk1) | | x* xk1 |
L | x * xk1 | ...... Lk | x * x0 | 0
15

|
x
*
xk
|

1 1
L
|
xk 1

xk
|
?
| xk1 xk | | x * xk | | x * xk1 | | x * xk | L | x * xk |

|
x*
xk
|

Lk 1 L
|
x1

x0
|
?
可用 | xk1 xk |来 控制收敛精度
( x) x ( x) ( x ) ( )( x x ) L x x
即对 x N ( x ) x ( x) x
14
证明:① φ(x) 在[a, b]上存在不动点?
令 f (x) (x) x
a (x) b
f (a) (a) a 0 , f (b) (b) b 0
f (x) 有根
② 不动点唯一?
反证:若不然,设还有 x (x),则
x* x~ (x*) (x) (ξ) (x*x), 在 x * 和 x~ 之间。
x3 469.720 x4 1.0275108
法5
x3 1.34546 x4 1.37517 x4 1.37517
1
x3 (8.65086)2

x1 1.37333 x2 1.36526
x5 1.37517

x3 1.365230014 x11 1.365137821
相关文档
最新文档