迭代法求平方根
很久以前看过求平方根的这么一个方法,是用的迭代,按下面这个公式进行迭代即可求出a的平方根:
Xn=(Xn-1+a/Xn-1)/2 (n>0)
其中X0可以随便取一个数。当Xn-Xn-1满足精度要求时,即可输出Xn作为答案。
很长时间以来都想不明白,为什么通过这样的迭代会算出平方根。上网查他的原理也没查到。最近在《边缘奇迹——相变与临界》上看到了重正化群中类似的东西,我恍然大悟,想到了怎样来理解。
我们画出y=(x+a/x)/2的图像,再在同一坐标系内画出y=x。如下图(a=2):

随便取一个X0,做竖直直线,找到他与y=(x+a/x)/2的交点,交点的纵坐标即为X1。再过交点做水平直线,找到与y=x的交点,其横坐标即X1。再过交点做竖直线,找到他与y=(x+a/x)/2的交点,交点纵坐标即为X2。再过交点做水平直线,找到与y=x的交点,其横坐标即X2……不停地做下去,通过图就可以看出交点逐渐逼近两条函数曲线的交点,即点(√2,√2)。
一般的a也是一样,最终逼近于(√a,√a)。
不过,我还是不知道这个迭代式是怎么找到的,我尝试过写出求三次方根的迭代式,结果无功而返。
上面的均属个人见解,如有错误请指出。
-
http://none~~ 偶尔发现这个blog的人
-
http://hi.baidu.com/suweiai shuo
-
leasp
-
yangyang999 hai

