Newton-Raphson分区和平方根不同表达式的不同精度

时间:2014-09-23 21:47:57

标签: algorithm math assembly floating-point

我试图使用汇编代码使用汇编代码计算x的浮点平方根,首先找到平方根(1 / sqrt(x)),然后乘以x找到sqrt(x) )。

然而,我正在阅读有关newton-raphson分区的维基百科页面,看起来根据你如何计算X_ {i + 1},你需要在中间步骤中有不同的精度。

来自Wikipedia

  

从计算的角度来看,表达式X_ {i + 1} = X_i +   X_i(1-DX_i)和X_ {i + 1} = X_i(2-DX_i)不相等。获得一个   当使用第二个时,结果具有n位的精度   表达式必须计算X_i和(2-DX_i)之间的乘积   加倍所需的精度(2n位)。相比之下的产品   在X_i和(1-DX_i)之间只需要以n的精度计算   位“。

所以,我有两个问题:

  1. 我不明白为什么必须用两倍所需的精度(2n位)来计算X_i和(2-DX_i)之间的乘积,以获得精度为n位的结果。有人可以解释一下原因吗?

  2. Newton-Raphson Square Root是否有类似的东西?例如,我正在计算X_ {i + 1} = X_ {i}(3/2 - 1/2 N X_ {i} ^ 2),但这也可以计算为X_ {i} + X_ {i}( 1/2 - 1/2 N X_ {i} ^ 2)。一个表达式是否需要更高的中间精度,就像Newton-Raphson分部一样?是否有一种不同的格式我应该只需要n位精度来获得n位精度的结果?

  3. 我正在寻找一个错误< = 1 ulp

    的结果

0 个答案:

没有答案