首页 理论教育一元高阶方程迭代解法

一元高阶方程迭代解法

【摘要】:图4.5牛顿迭代法求高阶方程根从数学上可以证明,若猜测解xk取在单根x*的附近,则它恒收敛。

迭代法求一元高阶方程f(x)=0的解,需要将方程f(x)=0改写为一种迭代形式:x=φ(x);选择适当的初值x0,通过重复迭代构造出一个序列:x0,x1,x2,x3,…,xn,…;若函数在求解区间内连续,且这个数列收敛,即存在极限,那么该极限值就是方程f(x)=0的一个解。在构成求解序列时,不可能重复无限次,重复的次数应由指定的精确度(或误差)决定。当误差小于给定值时,便认为所得到的解足够精确了,迭代过程结束。常用的方法有牛顿迭代法、二分迭代法和割线法3种。

1.牛顿迭代法求解一元高阶方程

牛顿迭代法又称为牛顿切线法,其基本思想如图4.5所示。设xk是方程f(x)=0的精确解x*附近的一个猜测解,过点Pk(xk,f(xk))作f(x)的切线。该切线方程为:

y=f(xk)+f'(xk)*(x-xk

切线与X轴的交点是方程:f(xk)+f'(xk)*(x-xk)=0的解,为:xk+1=xkf(xk)/f'(xk),该式既是牛顿迭代法求解一元高阶方程的迭代公式。

图4.5 牛顿迭代法求高阶方程根

从数学上可以证明,若猜测解xk取在单根x*的附近,则它恒收敛。经过有限次迭代后,便可以求得符合误差要求的近似根。

【例4.13】 用牛顿迭代法求方程:x4-4x3+6x2-8x-8=0在0附近的根。

程序的运行结果为:root=-0.602272。

2.二分迭代法求解一元高阶方程

图4.6 二分迭代法求高阶方程根

设有一元高阶方程表示为:f(x)=0,则用二分迭代法求高阶方程在某个单根区间的实根的步骤如下,如图4.6所示。

①输入所求区间的两个端点值即初值x1和x2,所取求根区间必须保证f(x1)*f(x2)<0。

②计算出用x1和x2表示端点的求根区间中点值x=(x1+x2)/2。

③计算x1、x和x2三点处的函数值f(x1)、f(x2)和f(x)。此时若f(x)=0,则算法结束,x就是所求的一个实根。否则,转步骤④。

④若f(x)和f(x1)同号,令x1=x,否则,令x2=x,转步骤②。

【例4.14】 用二分迭代法求方程2x3-4x2+3x-6=0在区间(-10,10)中的根。

程序的运行结果为:root=2.000000。(www.chuimin.cn)

3.割线法求解一元高阶方程

割线法亦称为弦截法,设有一元高阶方程表示为:f(x)=0,则用割线法求高阶方程在某个单根区间的实根的步骤如下,如图4.7所示:

①输入所求区间的两个端点值即初值x1和x2,所取求根区间必须保证f(x1)*f(x2)<0。

②连接f(x1)和f(x2)两点,连线交X轴于x0,x0的坐标方程为:

图4.7 割线法求高阶方程根

③若f(x0)与f(x1)同号,则根必在(x0,x2)区间内,此时将x0作为新的x1;反之则表示根在(x1,x0)之间,此时将x0作为新的x2。

④反复执行步骤②和③,直到所求根满足要求为止。

【例4.15】 用割线法求方程2x3-4x2+3x-6=0在区间(-10,10)中的根。

程序的运行结果为:root=2.000000。