Чтобы вычислить значение производной данной функции Func в данной точке x, чтобы получить хорошую точность, можно подумать так:
a = Fun( x - Number.MIN_VALUE)
b = Func( x + Number.MIN_VALUE)
return (b-a)/(2*Number.MIN_VALUE)
Теперь для любого x + Number.MIN_VALUE
(или x - Number.MIN_VALUE
) оба возвращают x в javascript.
Я пробовал разные значения, и 1 + 1e-15
возвращает 1.0000000000000001. Пытаясь получить большую точность, 1 + 1e-16
возвращает 1
. Поэтому мне придется использовать 1e-15
вместо Number.MIN_VALUE, который равен 5e-324
.
Есть ли способ получить лучшую точность в этом случае в javascript?
1 - 1e-15
возвращает:0.999999999999999
;1 - 1e-16
возвращает:0.9999999999999999
; Я не вижу здесь проблемы. - person Cerbrus   schedule 12.12.20121 + 1e-15
и1 + 1e-16
. - person Swair   schedule 12.12.20121.0
и1e-17
или меньше, в то время как система может представить эти меньшие числа. - person Cerbrus   schedule 12.12.2012