笔算开立方根可以使用迭代法,下面以计算 3 的立方根为例介绍一种常见的迭代算法——牛顿迭代法:
设要求 a=3 的立方根,即求方程 x3−a=0 的根。
牛顿迭代公式为:xn+1=xn−f′(xn)f(xn)
对于函数 f(x)=x3−a,其导数 f′(x)=3x2
那么迭代公式变为:xn+1=xn−3xn2xn3−a=3xn22xn3+a
首先选取一个初始值 x0
通常可以先取一个接近立方根的初值,对于33
, 我们可以取 x0=1
进行迭代计算
第一次迭代:
已知 a=3,x0=1
x1=3x022x03+a=3×122×13+3=32+3=35≈1.667
第二次迭代:
把 x1=35 代入迭代公式
x2=3x122x13+a
先计算 x13=(35)3=27125
2x13=2×27125=27250
3x12=3×(35)2=3×925=325
x2=32527250+3=32527250+81=32527331=27331×253=225331≈1.471
复制代码
- 第三次迭代:
把 x2≈1.471 代入迭代公式继续计算,经过多次迭代之后,xn的值会越来越接近 33
的精确值。
随着迭代次数的增加,结果会越来越精确。实际上 33
≈1.442
另外,还有一种比较古老的手动开立方的方法,类似于手动开平方,不过过程更为复杂,步骤如下:
分组
将要开立方的数从小数点起向左、向右每三位分为一组,如果整数部分位数不足,前面补 0,小数部分位数不足,后面补 0。对于 3,写成 3.000 000⋯
确定首根
求不大于最左边一组数的立方数,此立方数的立方根就是所求立方根的最高位数字。对于 3,13=1<3,23=8>3,所以立方根的第一位数字是 1
求余数
用最左边一组数减去这个立方数,得到余数。 3−1=2
构造下一部分
将余数与下一组数组成新数,这里是 2000。同时,将已确定的立方根的部分乘以 300 作为除数的一部分,这里是 1×300=300
试商
确定一个数字 x,使得 (300×12+30×1×x+x2)×x 不大于 2000。通过试算,当 x=4 时, (300×12+30×1×4+42)×4=(300+120+16)×4=436×4=1744<2000
继续计算
用新数减去 (300×12+30×1×4+42)×4 得到新的余数,再将新余数与下一组数组成新数,重复上述步骤继续计算后续数位。
这种方法计算量较大,容易出错,实际应用中较少使用。