2016-11-30 42 views
-1

當對結果使用近似值時(例如,當計算根或者除以一些限制時),是否有辦法知道近似值何時與許多數字中的確切結果(使其成爲有效數字)相匹配而不知道確切的數值結果?是否有可能輸出15個重要小數的結果而不計算確切的結果?

我正在處理的具體問題是使用牛頓方法僅使用除2(bitshift)的C++近似a/b。近似值必須精確到十五的十進制數。但是我無法知道b!= 2的a/b的確切結果,還是我錯了?

感謝您的所有答案。

+1

你是如何試圖代表值?作爲固定的小數點或「雙」值。在後一種情況下閱讀[浮點數學是否被破壞?](http://stackoverflow.com/questions/588004/is-floating-point-math-broken)。 –

+0

@πάνταῥεῖ,我正在使用'double'值,但是這怎麼回答我的問題?僅僅使用'double'類型就足夠了,因爲它保證了15個小數點匹配? –

+0

你能分享你當前的代碼嗎? –

回答

0

求解方程的任何可靠方法都涉及到計算包含根的範圍,每次迭代的範圍越窄。當範圍變得足夠窄時停止 - 在您的示例中,低於1e-15

牛頓並沒有使用範圍,但我無法想象你將如何使用牛頓除以2。

+0

您好@Eugene, a/b可以用牛頓法只用乘法,加法和減法來計算,但是對於乘法,使用Karatsuba的算法,其中採用了除法。 –

相關問題