3
考慮計算如何避免的NaN由於舍入誤差
x * -3/10 + sqrt(1/20 - x^2/100)
時x=sqrt(5)
。由於舍入誤差,sqrt參數變爲負數,整個表達式的結果爲NaN
。
> x <- sqrt(5)
> x * -3/10 + sqrt(1/20 - x^2/100)
[1] NaN
Warning message:
In sqrt(1/20 - sqrt(5)^2/100) : NaNs produced
正確的結果是
> sqrt(5) * -3/10
[1] -0.6708204