Вы должны использовать что-то вроде h=sqrt(epsilon)*(1+abs(x))
, так как для больших x
относительная точность h=sqrt(epsilon)
уменьшится.
Как правило, формула разности для k-й производной будет иметь ошибку оценки, пропорциональнуюдо epsilon/h^k
, что добавляет теоретическую погрешность порядка h^p
формулы аппроксимации.Общая ошибка минимальна, если оба вклада примерно равны, то есть для h=epsilon^(1/(k+p))
, который затем необходимо масштабировать до размера x
.
Пусть x
будет иметь масштаб 1
вследующие примеры, чтобы избежать этого масштаба.В вашей односторонней первой производной формуле k=p=1
, поэтому h=epsilon^(1/2)
.Если взять формулу симметричной разности, то k=1, p=2
, а оптимальная h
составляет около epsilon^(1/3)
.Если вы аппроксимируете вторую производную, используя симметричную формулу разности второго порядка, вы получите k=p=2
, поэтому h=epsilon^(1/4)
является оптимальным и т. Д.