考虑三次方程
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