根據this very elaborate answer我估計的最大相對誤差δ資源,執行以下計算的最大這樣的:估計最大相對誤差
// Pseudo code
float a, b, c; // Prefilled IEEE 754 floats with double precision
res = a/b * c;
解析度= A *(1 + δ一個)/(b *(1 +δ b))*(1 +δ A/b)* C *(1 +δç)*(1 +δ A/b * c)
= A/B * C *(1 +δ一個)/(1 +δ b)*(1 +δ A/B)*(1個+δÇ)*(1 +δ A/b * C)
= A/b * C *(1個+δ RES)
=>δ RES =(1 +δ一個)/( 1 +δ b)*(1 +δ A/B)*(1個+δÇ)*(1 +δ A/B * C) - 1個
所有ΔS是±ε的範圍內/ 2,其中ε是2^-52。
=>δ水庫,最大 =(1 +ε/ 2)^ 4 /(1 - ε/ 2) - 1≈2.5 *ε
這是對於誤差估計的有效的方法,可以用於基本浮點運算的每個組合?
PS:
是的,我閱讀了「什麼的每一臺計算機科學家應該知道關於浮點運算」。 ;)
您可能會發現一些相關且有趣的論文:Claude-Pierre Jeannerod和Siegfried M. Rump。 「關於浮點操作的相對錯誤:最佳範圍和應用程序。」 (2016)[(online)](https://hal.inria.fr/docs/00/93/44/43/PDF/JeannerodRump2014.pdf) – njuffa
感謝您的鏈接@njuffa!有趣的,的確如此。:)現在我只對安全的錯誤界限感興趣。如果需要,收緊它們將是我的下一步。 – Thorsten