Какое значение я должен использовать для аппроксимации градиента функции на практике? - PullRequest
0 голосов
/ 10 мая 2018

Для некоторой функции f (x) я хочу найти f '(x) и f' '(x), используя следующее приближение:

[f (x + h) - f (x)] / h

Какие значения h выбрать в каждом сценарии?Я знаю, что для f '(x) это должно быть h = sqrt (эпсилон), где эпсилон - машинный эпсилон.но нужно ли по-разному обрабатывать значение h для f '' (x)?Я предполагаю, что ошибки усечения и округления несколько взаимно компенсируют друг друга и приводят к этому значению.

Как мне приблизить ошибку, которую я найду для двойной точности (в качестве примера)?

1 Ответ

0 голосов
/ 10 мая 2018

Вы должны использовать что-то вроде 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) является оптимальным и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...