解析方法和数值方法求方程
f x( )? 0
的解(或根),就是要寻找一个数 x *,使得满足
0)( *?xf 。
求方程的解主要方法有两种:解析方法和数值方法。
§ 6 方程的近似求解解析方法 也称为公式法,它是将方程的解表达为方程的系数的函数形式,只要把待求的方程的系数代入表达式,就可以求出方程的解。
例如,对于一元二次方程
ax bx c a2 0 0,( ),
可以得到它的两个解为
x x
b b ac
a1 2
2 4
2
,?

§ 6 方程的近似求解解析方法和数值方法求方程
f x( )? 0
的解(或根),就是要寻找一个数 x *,使得满足
0)( *?xf 。
求方程的解主要方法有两种:解析方法和数值方法。
数值方法 是一种求近似解的方法。由于实际问题中绝大多数方程都无法找到其解析解,因此,数值方法是用数学工具解决实际问题过程中的一个重要方法。
二分法对于一个实的方程
f x( )? 0
,
最简单的数值求解方法为 二分法 。

f x( )

[,]a b
中连续,且成立
f a f b( ) ( ) 0
,
那么在
[,]a b
至少存在着
f x( )
的一个解 x * 。我们希望求出它的近似值 ~x,
满足
*
0xx
,
这里
0?
是预先给定的精度要求。
数值方法 是一种求近似解的方法。由于实际问题中绝大多数方程都无法找到其解析解,因此,数值方法是用数学工具解决实际问题过程中的一个重要方法。
⑴ 记
[,]a b1 1
=
[,]a b; 取
x 1

[,]a b1 1
的中点,即
x
a b
1
1 1
2

⑵ 计算
f x( )1
,

f x( )1 0?
,则
x 1
即为方程的解 x *,取
~x x?
1
,计算结束 。
⑶ 否则,按如下规则得到区间
[,]a b2 2
,
(a )

f x f b( ) ( )1 1 0

此时
f x( )
的 解在
[,]x b1 1
中,取
a x2 1?

b b2 1?

(b )

f x f b( ) ( )1 1 0

此时
f a f x( ) ( )1 1 0
,因此
f x( )
的解在
[,]a x1 1
中,取
a a2 1?
,
b x2 1?
,
易知 x *?
[,]a b2 2
,且
[,]a b2 2
的长度是
[,]a b1 1
的一半。
⑷ 取
x 2

[,]a b2 2
的中点。
⑸ 类似地,若
x 2
是方程的解 x *,计算结束;否则可以得到
[,]a b3 3

⑹ 重复上述过程……。
假设执行过程中没有发生
x k
恰好等于 x * 的情况,由于对任何 k 都有
b a
b a
k k k

2
1
,
因此
[,]a bk k
的中点
x k
与精确解 x * 的距离不会超过
],[ kk ba
长度的一半,即成立
x xk? *
0
22
kk
k
ba ba


,
所以,当执行到

0
2
l o g
ab
k
时,必有
x xk? * 0
,
于是,
kxx?
便是符合精度要求的近似解。
N e w t o n 迭代法数值计算中常用的求近似值的方法是 迭代法 。先将原来的方程
f x( )? 0
化为等价的形式
x F x? ( )
,
所谓“等价”是指若 x * 是方程
0)(?xf
的解,则成立
x F x* *( )?
,
反之亦然。这里的
F x( )
称为 迭代函数 。
取一个适当的初始值
x 0
,按
x F x kk k1 0 1 2( ),,,,?
产生序列
{ }x k
(设每个
x k
都属于
F x( )
的定义域),这样的计算过程称为迭代 。若成立
)(* kxx k
,
则 x * 就是原方程的解。因此只要在迭代过程中,选取某个合适的
x k
作为 ~x,就得到原方程的近似解了。
构造迭代函数可以有多种方法,最简单的可以取
F x x f x( ) ( )

下面我们利用 T ay l o r 公式来 构造迭代函数 。

f x( )
在含有 x * 的某个区间
[,]a b
中具有二阶连续导数,且对于每个
],[ bax?
,都有
f x( ) 0
。作出
f x( )*
在 x 处的 T a yl o r 公式,由于 x * 是方程
0)(?xf
的解,则有
*2
** ()( ) ( ) ( ) ( ) ( ) 0
2
xx
f x f x f x x x f?


,
也即
*2
* ( ) ( ) ( )
( ) ( ) 2
f x f x x
xx
f x f x



,
当 x x?
*
时,上式的最后一项是趋向于零的,因此有
*
*
*
*
* )(
)(
)(
)(
lim x
xf
xf
x
xf
xf
x
xx


这样,
F x x
f x
f x
( )
( )
( )

就是一个满足
x F x* *( )?
要求的迭代函数,由此得到迭代公式
x x
f x
f x
kk k k
k
1 0 1 2
( )
( )
,,,,?
,
这就是著名的 N e w t o n 迭代法 (简称 N e w t o n 法 )。
N ew t o n 法具有明显的几何意义。求解
f x( )? 0
实际上是求曲线
y f x? ( )
与 x 轴的交点的横坐标,曲线在
x x k?
处的切线方程为
y f x x x f xk k k( )( ) ( )
它与 x 轴的交点的横坐标恰为
x x
f x
f x
x
k
k
k
k

( )
( )
1

也就是说,N ew t o n 法实质上是通过一系列的切线与 x 轴的交点的横坐标,来逼近曲线与 x 轴的交点的横坐标( 图
5,6,1 ),所以 N e w t o n 迭 代法也叫
N e w t o n 切线法 。
我们不加证明地给出如下结论。
定理 5,6,1 设
f x( )

[,]a b
中有二阶连续导数,且满足条件

f a f b( ) ( ) 0;

f x( )

(,)a b
保号;

f x( )

(,)a b
保号;

x 0
是 a 和 b 中满足
f x f x( ) ( )0 0 0
的那一个点,则以
x 0
为初值的 N ew t o n 迭代过程
x x
f x
f x
k
k k
k
k

1
0 1 2
( )
( )
,,,,?
,
产生的序列
{ }x k
单调收敛于方程
f x( )? 0

[,]a b
中的唯一解 。
例 5,6.1 解方程
ln s i nx x? 。
解 记
f x x x( ) ln s i n
,考虑区间
π
,e
2



,则有
π π π
l n s i n 0
2 2 2
f



,
f (e) ln e s i n e 0


0c o s
1
)( x
x
xf
,
π
,e
2
x



,
22
14
( ) sin sin e 0
π
f x x
x

,
π
,e
2
x



,
所以符合定 理 5.6.1 的全部条件。
因为
f f(e) (e) 0
,
所以初值取为
x 0? e
,计算结果如下,
k x k
x xk? *
1 2,2 5 7 8 1 5 6 2 0 6 3 6 6 2 2 8 9 3,8 7 × 10
- 2
2 2,2 1 9 5 1 2 4 9 0 1 7 3 0 0 4 7 8 4,0 5 × 10
- 4
3 2,2 1 9 1 0 7 1 9 5 1 7 3 8 7 3 2 3 4,6 3 × 10
- 8
4 2,2 1 9 1 0 7 1 4 8 9 1 3 7 4 6 8 3 8,8 8 × 10
- 16
最后,取 ~x =
x 4
= 2,2 1 9 1 0 7 1 4 8 9 1 3 7 4 6 8 3 作为 x * 的近似值。
例 5,6,2 用 N ew t o n 法求 A,A? 0 是一个给定的数。
解 显然,求 A 等价于求方程
f x x A( )2 0
的解 x * ( R*x )。
首先寻找一个正整数 n,使得
( )n A n1 2 2
,
然后取
x n0?
,用 N ew t o n 迭 代
),2,1,0(
2
1
2
2
1



k
x
A
x
x
Ax
xx
k
k
k
k
kk
得到序列
{ }x k
,可以验证,在区间
[,]n n? 1
上定理 5,6,1 的条件全部满足,
因此
x x Ak*

下面是以
x 0 3?
为初值求 7 的计算结果。
k x k
x k? 7
1 2,6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 2 2,0 9 × 10
- 2
2 2,6 5 4 8 3 3 3 3 3 3 3 3 3 3 3 4 8 8,2 0 × 10
- 5
3 2,6 4 5 7 5 1 3 1 2 3 3 5 9 5 8 1 7 1,2 7 × 10
- 9
4 2,6 4 5 7 5 1 3 1 1 0 6 4 5 9 0 7 2 < 1 0
- 17