力学中的计算方法(方程求根)

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

P(x1, x2)
ˆ K 比x K 收敛得略快。 x
P(x0, x1)
Steffensen 加速:
x0 , x1 g( x0 ), x2 g( x1 ), ˆ 0 , x1 g( x ˆ 0 ), x2 g( x1 ), x ˆ ˆ , ... ... x
0
x x1 x* x2 x0
ˆ x
( x1 x 0 ) 2 ˆ x0 x x 0 2 x1 x 2
牛顿法 /* Newton - Raphson Method */
原理:将非线性方程线性化 —— Taylor 展开 /* Taylor’s expansion */ 取 x0 x*,将 f (x)在 x0 做一阶Taylor展开: f ( ) f ( x ) f ( x0 ) f ( x0 )( x x0 ) ( x x0 )2, 在 x0 和 x 之间。 2! 将 (x* x0)2 看成高阶小量,则有:
ˆK x
Fixed-Point Iteration ( x K 1 x K ) 2 xK x K 2 x K 1 x K 2
y=x
x0 , x1 g( x0 ), x2 g( x1 ), ˆ 0 , x3 g( x2 ), x ˆ 1 , x4 g( x3 ), x ... ...
Bisection Method
例1:求方程 f(x)=x3-x-1=0 在区间(1,1.5)内的 根。要求误差不超过0.005
解 (1)这里a=1,b=1.5, ∵ f(1)*f(1.5)<0 ∴区间(1,1.5)内必有根存在。 (2) b k a
2 ε 0.005
lnb a ln ε k
③ 当k 时, xk 收敛到 x* ?
| x * xk | | g( x*) g( xk 1 ) | | g(ξ k 1 ) | | x * xk 1 |
L | x * xk 1 | ...... Lk | x * x0 | 0

Fixed-Point Iteration
1 3 ( x 1) g( x ) 进行迭代,则在(1, 3
2)中有
在 (1, 2) 上可取任意 2 K 0 ,例如K = 0.5,则对
x 1
应 x 3 x 1 ( x 3 1) 即产生收敛序列。
2 6
3
埃特金(Aitken) 加速: 一般地:
y y = g(x)
1.3750 1.3438 1.3281 1.3281
1.3125
1.3438 1.3281 1.3203 1.3242
x=1.324717…….
迭代法 /* Fixed-Point Iteration */
f (x) = 0 f (x) 的根
等价变换
x = g (x) g (x) 的不动点
从一个初值 x0 出发,计算 x1 = g(x0), x2 = g(x1), …, x 思 xk+1 = g(xk), … 若 k k 0 收敛,即存在 x* 使得 路 lim x k x *,且 g 连续,则由 lim x lim g x 可 k 1 k k k k 知 x* = g(x* ),即x* 是 g 的不动点,也就是f 的根。


1 | x k 1 x k | | x * xk | 1 L

L | x1 x0 | | x * xk | 1 L

k
( k = 1, 2, … )
且存在极限
lim
k
x * x k 1 g x * x * xk

Fixed-Point Iteration
basically are OhSo yeah? Whowe tells done! can’t believe you that I the method it’s so simple! is convergent? What’s the problem?
Fixed-Point Iteration y p1 p0 y=x y=g(x) y p0 y=x
0 f ( x*) f ( x0 ) f ( x0 )( x * x0 ) y
x* x0
f ( xk ) x k 1 x k f ( x 线性 /* linear */ k)
f ( x0 ) f ( x0 )
x*
x
x0
只要 f C1,每一步迭代都有 xk x * , f ’( xk ) 0, 而且 lim k 则 x*就是 f 的根。
Newton - Raphson Method
证明:Newton’s Method 事实上是一种特殊的不动点迭代
其中 g( x ) x
g ( x*)
f ( x) ,则 f ( x )
f ( x*) f ( x*) 0 1 收敛 2 f ( x*)

由 Taylor 展开: 在单根 /*simple root */ f ( k ) 0 f ( x*) f ( xk ) f ( xk )( x * xk ) ( x * xk )2 附近收敛快
1 | x k 1 x k | ? ④ | x * xk | 1 L | x k 1 x k | | x * x k | | x * x k 1 | | x * x k | L | x * x k | | x k 1 x k | 来 Lk 可用 | x1 x0 | ? ⑤ | x * xk | 1 L 控制收敛精度
方程求根
非线性方程求根
/* Solutions of Nonlinear Equations */
求 f (x) = 0 的根 二分法 /* Bisection Method */
原理(介值定理): 若 f (x)C[a, b],且 f (a) · f (b) < 0,则 f 在 (a, b) 上 必有一根。
证明:① g(x) 在[a, b]上存在不动点?
令 f ( x ) g( x ) x
f ( x ) 有根
a g( x ) b
f ( a ) g ( a ) a 0 , f ( b ) g( b) b 0

② 不动点唯一?
~ g( x ~ ),则 反证:若不然,设还有 x ~ ) g(ξ ) ( x * x ~ ), 在 x * 和 x ~ 之间。 ~ g( x*) g( x x* x ~ )(1 g(ξ )) 0 ~ ( x* x 而 | g(ξ ) | 1 x* x
(3) 选取 x0 [a, b] 使得 f (x0) f ”(x0) > 0;
则Newton’s Method产生的序列{ xk } 收敛到f (x) 在 [a, b] 的 唯一根。 产生的序列单调有 有根 根唯一 定理 (局部收敛性)设 f C2[a, b]界,保证收敛。 ,若 x* 为 f (x) 在[a, b] 上的根,且 f ’(x*) 0,则存在 x* 的邻域 B ( x*) 使得任取初 值 x0 B ( x*) ,Newton’s Method产生的序列{ xk } 收敛到x*, 且满足 x * x k 1 f ( x*) lim k ( x * x ) 2 2 f ( x*) k
Baidu Nhomakorabea

x0 y x1 x* y=x x x0 y y=g(x) p0 x* y=g(x)

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

x x0 x*
p1

x
x1
Fixed-Point Iteration
定理
考虑方程 x = g(x), g(x)C[a, b], 若
( I ) 当 x[a, b] 时, g(x)[a, b]; ( II ) 0 L < 1 使得 | g’(x) | L < 1 对 x[a, b] 成立。 则任取 x0[a, b],由 xk+1 = g(xk) 得到的序列 x k k 0 收敛 于g(x) 在[a, b]上的唯一不动点。并且有误差估计式:
Bisection Method
When to stop?
a x a1 x*
x2 b
b
x k 1 x k ε1

f ( x ) ε2
不能保证 x 的精 度
2
x* x
Bisection Method
误差 分析: ab ba x |x x*| 第1步产生的 1 2 有误差 1 2
第 k 步产生的 xk 有误差 |xk x*|
ba 2k
对于给定的精度 ,可估计二分法所需的步数 k :
ba ε k 2 k
lnb a ln ε
ln 2
①简单; ② 对f (x) 要求不高(只要连续即可) .
①无法直接求复根及偶重根 ② 收敛慢
注:用二分法求根,最好先给出 f (x) 草 图以确定根的大概位置。 或用搜索程序,将[a, b]分为若干小 区间,对每一个满足 f (ak)· f (bk) < 0 的区 间调用二分法程序,可找出区间[a, b]内 的多个根,且不必要求 f (a)· f (b ) < 0 。
3 f ( x ) x 3 x 1 0 在 (1, 2) 的实根。 例:求
如果用
x
| g( x ) | | x 2 | 1 K 现令 ( x ) (1 K ) x Kg( x ) (1 K ) x ( x 3 1) 3 2 2 K 0 希望 | ( x ) | | 1 K Kx | 1 ,即 2
Fixed-Point Iteration
改进、加速收敛 /* accelerating convergence */
待定参数法: 若 | g’(x) | 1,则将 x = g(x) 等价地改造为
x x Kx Kg( x ) (1 K ) x Kg( x ) ( x ) 求K,使得 | ( x ) | | 1 K Kg( x ) | 1
| x k 1 x k | | g ( x k ) g ( x k 1 ) | | g ( ξ k )( x k x k 1 ) |
k L | x k xL | ...... L | x1 x0 | k 1 越 小 收敛越快

⑥ lim
k
lim
k
x * x k 1 g ( ξ k )( x * x k ) lim g ( x*) k x * xk x * xk
x * x k 1 g x * ? x * xk


注:定理条件非必要条件,可将[a, b]缩小,定义局部收 敛性:若在 x* 的某 领域 B = { x | | x x* | } 有 gC1[a, b] 且 | g’(x*) | < 1,则由x0B 开始的迭代 收敛。即调整初值可得到收敛的结果。
例:用切线法求方程的根。 xex-1=0 x
xk e 解: xk 1 xk 1 x k
k
取x0=0.5 迭代结果如表所示
| xk 1 xk | 收敛条件:
Newton - Raphson Method
定理 (收敛的充分条件)设 f C2[a, b],若
(1) f (a) f (b) < 0;(2) 在整个[a, b]上 f ”不变号且 f ’(x) 0;
ln 2
k= 7
(3)求解:
k
1 2
xk=1.32
bk
1.5000 1.5000
Bisection Method
Why?
ak
1.0000 1.2500
xk
1.2500 1.3750
f(xk)的符号 + + + -
3
4 5 6 7
1.2500
1.3125 1.3125 1.3125 1.3203
1.3750
相关文档
最新文档