Sqrt和小数

时间:2015-05-04 11:49:34

标签: math decimal square-root sqrt

是否需要标准的小数位数才能从错误< 错误<<<<< 1

我的意思是: sqrt(200000)= 447.21359 ...... 如果我尝试重建我的号码只有两位小数我有  (447.21)^ 2 = 199996.7841 但如果我使用第一个三位小数,我会得到  (447.213)^ 2 = 199999.467369 ,这是一个小于原始数字1的错误。

我需要保存的小数位数公式吗?

4 个答案:

答案 0 :(得分:2)

y为数字,x=sqrt(y)为平方根,并说我们对平方根有一个近似值z,错误为eps = z - x

然后

abs(y - z^2) = abs(y - (x + eps)^2)
= abs(y - x^2 - 2 eps x  - eps^2) = abs(2 eps x + eps^2)
= O(eps x)

代表小eps。换句话说,如果您希望square的误差小于1,那么平方根的误差应该大约小于1 / sqrt(y)

因此,对于您的示例,错误应该小于

1 / sqrt(200000) = 0.002236....

或者一半,如果你想更精确并考虑因素2。所以,正如你发现的那样,这个公式可以让你在你的情况下需要精确到逗号后面的第3位。

答案 1 :(得分:1)

当重新平方的平方根等于或大于原始值+/- 1时,误差将为1,因此只需找到x + 1的平方根之间的差值(误差在+上更高) ())和x的平方根:

maximum error = sqrt(x+1) - sqrt(x)

e.g:

sqrt(200001) - sqrt(200000) = 0.001118033

所以你需要3个数字

完整的公式是:

所需的十进制数字= ceil(-log 10 (sqrt(x + 1)-sqrt(x)))

答案 2 :(得分:0)

计算 a = Sqrt(200000-1)=447.2124774645716并使用大于a的Sqrt(200000)。

此处447.21 < a447.213 > a

答案 3 :(得分:0)

扩展samgak的答案并以另一种方式阐明cfh的答案:

 sqrt(x+1) - sqrt(x) = 1 / (sqrt(x+1) + sqrt(x) ) < 1 /  (2*sqrt(x))

通过第三个二项式公式。要将sqrt(x+1)sqrt(x)以及sqrt(x-1)大致分隔在它们​​之间的细分中间点,精确结果sqrt(x)的修改应小于1 / (4*sqrt(x)) < / p>