如何计算一个数的平方根?
3个回答
推荐于2017-11-26
展开全部
平方根的计算方法计算方法一:我们用a来表示A的平方根,方程x-a=0的解就为A的平方根a。两边平方后有:x*x-2ax+A=0,因为x不等于0,两边除以x有:x-2a+A/x=0、a=(x+A/x)/2所以你只需设置一个约等于(x+A/x)/2的初始值,代入上面公式,可以得到一个更加近似的值。再将它代入,又可以得到一个更加精确的值……依此方法,最后得到一个足够精度的(x+A/x)/2的值即为A的平方根值。真的是这样吗?假设我们代入的值x﹤a 由于这里考虑a﹥0故:x*x﹤a*a 即x﹤A/x(x+A/x)/2﹥(x+x)/2 即(x+A/x)/2>x 即当代入的x﹤a时(x+A/x)/2的值将比x大。同样可以证明当代入的x﹥a时(x+A/x)/2的值将比x小。这样随着计算次数的增加,(x+A/x)/2的值就越来越接近a的值了。如:计算sqrt(5) 设初值为x = 2 第一次计算:(2+5/2)/2=2.25 第二次计算:(2.25+5/2.25)/2=2.236111 第三次计算:(2.236111+5/2.236111)/2=2.236068 这三步所得的结果和5 的平方根值相差已经小于0.001 了。 计算方法二:我们可以使用二分法来计算平方根。设f(x)=x*x - A同样设置a为A的平方根,哪么a就是f(x)=0的根。你可以先找两个正值m,n使f(m)<0,f(n)>0 根据函数的单调性,a就在区间(m,n)间。然后计算(m+n)/2,计算f((m+n)/2),如果它大于零,那么a就在区间(m,(m+n)/2)之间。小于零,就在((m+n)/2,n)之间,如果等于零,那么(m+n)/2当然就是a。这样重复几次,你可以把a存在的范围一步步缩小,在最后足够精确的区间内随便取一个值,它就约等于a。计算方法三:以上的方法都不是很直接,在上世纪80年代的初中数学书上,都还在介绍一种比较直接的计算方法:(1)如求54756的算术平方根时先由个位向左两位两位地定位:定位为5,47,56,接着象一般除法那样列出除式.(2)先从最高位用最大平方数试商:最大平方数不超过5的是2,得商后,除式5-4后得1。把商2写上除式上。(3)加上下一位的数:得147。(4)用20去乘商后去试商147:2×20=40 这40可试商为3,那就把试商的3加上40去除147。得147÷43=3,把3写上除式上。这时147-129=18。(5)加上下一位的数:得1856。(6)用20去乘商后去试商1856:23×20=460 这460可试商为4,那就把试商的4加到460去除1856。得4,把4写上除式上。这时1856-1856=0,无余数啦。(7)这时除式上的商是234,即是54756的平方根。哪么这种计算方法是怎么得来的呢?查找了好久都没有找到答案。静下心来仔细分平方根的计算过程,后来的步骤都有20乘以也有的商再加上预计的商乘上预计的商。设也有的商为a预计的商为b就是(20*a+b)*b即20ab+b*b。而实质上预计的商是平方根中已有的商的后一位数字,平方根实际为10a+b再乘以10的N次方(N为整数),这里我们可以简化为平方根为10a+b(因为乘10的N次方只影响平方的小数点位置,对数字计算没有影响)。这下终于明白了,设a为A的平方根的前n位,b为A的平方根的n位后面的数字,哪么(10a+b)就是A的平方根。有:(10a+b)(10a+b)=100a*a+20ab+b*b=A变形后:(20a+b)b=A-100a*a上面的计算中第一次商2,然后从结果中减4实质就是A-100a*a第二次再预计商3再减去(20*2+3)*3实质就是:A-100a*a-20ab-b*b即:A-(10a+b)(10a+b)此时10a+b看作为新的已有商a,再求下一个b值。这样就可以一位一位地进行平方根的求解了。
2013-09-02
展开全部
很简单的,4、9、16...这些数字要记住。其它的是没有办法的,必须查“平方根表”,不过有兴趣的话,根号2、根号3这些可以记一下,其它的没有必要。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-02
展开全部
有 那是大学里的知识
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询