03.04 请教我什么计算平方根?

手机用户12030597234


算盘不会用哈,所以教不了你。但可以介绍笔算开平方法。


笔算开平方法

一、开方的计算步骤

1.以小数点为分界线,向左向右将被开方数每隔两位划为一段。

如:7’85’67,1.61’23,10.12’3等。

2.根据左边第一段里的数,求得平方根的最高位上的数。

如:

7’85’67,左边第一段是7,介于2-3的平方之间,取2。

1.61’23,左边第一段是1,就是1的平方,

10.12’3,左边第一段是10,介于3-4的平方之间,取3。

3.用第一段的数减去最高位上数的平方,再把右边一段得两位数下来,不足两位补0。如同除法运算。

如:7’85’67,7减2的平方4=3,再把85下来,组成385,作为余数。此时的商只有一个2。

4.把求得的最高位数乘以20去试除第一个余数,所得的最大整数作为试商。

如:7’85’67,第一个余数是385,商2。


用20×2+_(暂时空着),试除第一个余数385,最多只能上8,8填入横线上。就是20×2+8=48,用48×8(试商是8)=384,385-384=1,第二个余数是1,此时的商是28。

5.再下拉两位,用同样的方法。

如:7’85’67,第二个余数是1,下拉67,组成167,此时商28。

……

二、图示说明



用心生活用心工作


直接用算盘开平方的方法在明朝朱大位的《算法纂要》中就有记载,不过在今天看来,有点烦琐。下面介绍一种用珠法开平方的简便算法——无限逼近法

无限逼近法的原理很简单,就是我们常用的完全平方公式。

(a+b)² = a²+2ab+b²

当 b远小于a时,b²可以忽略。即

(a+b)² 约等于 a²+2ab=a(a+2b)

例如求432的算术平方根

先估算a,我们知道20的平方是400,所以可以先令a=20

即432约等于20(20+2b)

可以算出b=0.8

如果要得到更高的精神则可以进一步往下算

432=(20.8+b)² = 20.8(20.8+ 2b)

可以求出b=-0.01538

432的算术根是20.8-0.01538=20.7846

一步一步向下算就可了

如果a取得足够准确,计算量就会少许多

37651的算术平方根

我们知道37651接近200*200=40000,所以可以先选a=190试试

37651=(190+b)²约等于190(190+2b)

b=4.0816

为了简便可以令b=4

37651=(194+b)²约等于194(194+2b)

b=0.03866

就可以求出37651的算术平方根是194.03866

b也可以是负数,如求85264的算术平方根

这个数接近90000,可以选a=300

则85264=300*300+2*300b

b=-7.893

可以取b=-8接着算

取a=300-8=292

85264=292*292-2*292b

算出b=0

所以85264的算术平方根是292+0=292



总结,这种算法的要点

1、整数a的选取尽量接近原平方根,比如较大的数据的平方根估值,可用尾数是0、5试算后再选更接近的。

2、如果求出的b值是整数后带小数,为了计算方便可以取最接近的整数

3、根据精度要求,可以一步步逼近要求的位数。

4、(a+b)² 约等于 a²+2ab=a(a+2b)后面提取a(a+2b)是考虑计算机编程方便。在实际计算中直接用(a+b)² 约等于 a²+2ab就可以了,没有必要后拖一步。


湍水钓叟


有一个简单的迭代法求平方根,只需要几步,就可以达到很高的精度,

如果x^2=C,

设x(0)为x初始猜测值,则根据猜测值可以计算,x(1)=0.5*[x(0)+C/x(0)],如法炮制,

x(n+1)=0.5*[x(n)+C/x(n)],n=0,1,2,...

直到满足要求为止。

一般,五次迭代可以满足工程需要。


分享到:


相關文章: