如何计算一个数的平方根
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,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值。这样就可以一位一位地进行平方根的求解了。
由于这里考虑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值。这样就可以一位一位地进行平方根的求解了。
图为信息科技(深圳)有限公司
2021-01-25 广告
2021-01-25 广告
边缘计算可以咨询图为信息科技(深圳)有限公司了解一下,图为信息科技(深圳)有限公司(简称:图为信息科技)是基于视觉处理的边缘计算方案解决商。作为一家创新企业,多年来始终专注于人工智能领域的发展,致力于为客户提供满意的解决方案。...
点击进入详情页
本回答由图为信息科技(深圳)有限公司提供
展开全部
说一下笔算开方过程:1、先分组,从小数点向两侧两位一组。比如1326.78,那么13一组,26一组,78一组;132.538,1一组,32一组,53一组,80一组(小数部分必须用0补足两位;2、像除法计算一样,把这个数写在根式下(但没有除数)以1326.78为例:先想第一组13,几的平方最接近(不能大于)13?答案是3,在根号上面第一组的上面写3,13的下面写9,然后13-9=4拖下,再把第二组写在4的后面成426(类似于除法计算,但一次拖下一组;3、把上面的3乘以20写在现在这个被开方数426的前面(当作本次的除数,先写一个6,想:六十几乘以几接近426呢?注意:这两个几是相同的数!)如果是67,乘以7大于426,所以写66,在上面第二组上写6,把66乘以6的积写在426下面,相减得30,再把第三组78拖下写在30后面,成3078,小数点对齐写在上面的36后面;4、把上面的36(发现没有,每次都是用上面的数,上一次是3,这一次是36,下一次就是……全部上面的数)乘以20(每一次都乘以20,这个是不变的),得720,把72写在3078前面,想七百二十几乘以几不大于3078?上面写4,用4乘以724,积写在3078下面,相减得182,在182后面填上两个0,成18200,再如上方法计算……
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询