作业帮 > 数学 > 作业

如何计算一个数的平方根?

来源:学生作业帮 编辑:拍题作业网作业帮 分类:数学作业 时间:2024/04/27 16:44:49
如何计算一个数的平方根?
不用计算机来计算一个正负数平方根,用计算公式来计算.例如根号3是多少?可以多举几个例子吗?
平方根的计算方法计算方法一:我们用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 根据函数的单调性,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值.这样就可以一位一位地进行平方根的求解了.