考虑三次方程
x3−3x−5=0(1)
用正确的方法可能解决这个等式,也就是说,类似于二次公式
x=−b±b2−4ac−−−−−−−√2a
是二次方程
ax2+bx+c=0
的精确解那样,存在一个公式也用基的形式来表示三次方程的解。然而,如果我们想要(1)的数值解,也就是精确几位数,那么更方便的是找找出近似解而不是精确解。更进一步,即便对于2,3,4次的等式有类似于二次公式那样的解,但对于5次或更高次不可能存在这种形式的解。因此,为了求解类似于
x5−3x2+9x−11=0
这样的5次方程,我们只能使用近似的方法,因为目前没有其他方法。
回到等式(1),如果用
f(x)
表示
x3−3x−5
,那么我们可以很容易计算出下面的值:
f(−2)=−7,f(−1)=−3,f(0)=−5f(1)=−7,f(2)=−3,f(3)=13.
f(2)=−3,f(3)=13
表明当
x
从
x=2到
x=3
之间连续变化时,
f(x)
在-3到13之间连续变化,因此存在
x
值,使得
f(x)=0。从直觉上感觉很明显,但是给出一个严格的证明确很困难。在这里我们不去证明,而是直接用结论。如果连续函数
f(x)
的两个值
f(a),f(b)
符号相反,那么至少在
a,b
之间至少存在一个值使得
f(x)=0
。这说明(2)式在
x=2,x=3
之间至少存在一个根,我们可以在这之间任取一个作为近似值。
x=2
似乎好一点,因为-3比13更靠近0。
一般来说,假设等式
f(x)=0
有一个近似值
x=x1
。这个根就是曲线
y=f(x)
通过
x
轴的点,如图1;牛顿方法就是将x=x1点处的切线作为基础来获得更好的近似解
x2
。从近似解
x=x1
开始,我们画出点
(x1,f(x1))
处的切线。这条线与
x
轴交于点x=x2,从图中看它似乎更好。重复这个过程,用
(x2,f(x2))
处的切线得到点
x=x3
,比
x2
还好。图1从几何过程解释了这个步骤,但是为了用于计算,我们需要具体的公式。推导如下。
第一条切线的斜率为
f′(x1)
。考虑由点
(x2,0),(x1,f(x1)
确定的直线,其斜率也是
0−f(x1)x2−x1,so0−f(x1)x2−x1=f′(x1)
根据等式可得
−f(x1)=(x2−x1)f′(x1)orx2−x1=−f(x1)f′(x1)
所以
x2=x1−f(x1)f′(x1)(2)
由此有了第一个近似值
x1
,那么根据(2)可以得到第二个近似值;再由第二个可以得到第三个
x3=x2−f(x2)f′(x2)
如此进行下去直到无定义为止。
图1
例1:应用此方法到公式(1)得
f(x)=x3−3x−5,f′(x)=3x2−3,x1=2f(x1)=−3,f′(x1)=9,x2=x1−f(x1)f′(x1)=2−−39=213
将
x2
表示成小数形式
x2=2.333333
,精确六位数,继续计算得
x3=x2−f(x2)f′(x2)=2.333333−0.70369913.333329=2.280556
四舍五入到了第六位小数。因为计算负担都给了计算器,计算器计算很方便,所以我们继续进行下去。当连续的两个近似值第一次出现相等时,我们认为得到了精确解。因此,对于等式(1),两次计算后得到
x3=2.280556
。就像重复计算得
x4=2.279020x5=2.279019x6=2.279019
由此我们得出结论
x=2.279019
是等式(1)精确六位小数的解。
牛顿法对于像(1)那样多项式的解没有限制条件,也可以用于任何可导函数。
例2:考虑等式
x=cosx(3)
右边的
x
单位是弧度。最好先在同一坐标内画出
y=x,y=cosx 两个函数的图像,如图2。从图中很容易看出他们交点只有一个,点的
x
坐标就是(3)的解,因为交点处
y值是相等的。通过图像,先给出一个近似解:
x1=0.7
图2
为了使用牛顿法,我们将(3)式改为
x−cosx=0
令
f(x)=x−cosx
,则
f′(x)=1+sinx
。现在,将计算器设置为弧度模式,得
x2=x1−f(x1)f′(x1)=0.739436x3=x2−f(x2)f′(x2)=0.739085x4=x3−f(x3)f′(x3)=0.739085
精确六位小数得到的解为
x=0.739085
注解:在某些情况下,牛顿法产生的近似结果可能无法收敛到希望的解。例如,图3所示的函数
x1
推到
x2
,
x2
推回到
x1
,所以重复此过程不会求解到
r
<script type="math/tex" id="MathJax-Element-3581">r</script>。对于保证牛顿法可行的条件的数学理论可以参考数值分析的书籍。
图3