2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Погрешность численного дифференцирования аппроксимацией МНК
Сообщение19.04.2017, 19:57 
Заслуженный участник
Аватара пользователя


01/08/06
3131
Уфа
Задана сеточная функция $y_i=f(x_i)$ на равномерной сетке (для простоты пусть сетка бесконечная в обе стороны, чтобы не возиться с краевыми эффектами).
Задана она с некоторой постоянной погрешностью $\delta$. Требуется её численно продифференцировать в узлах сетки через аппроксимацию прямой $y=Ax+B$, построенной стандартным методом наименьших квадратов по фиксированному (симметричному) числу точек слева и справа.

Ну стандартнейшая же задача, согласитесь? Все программы цифровой обработки данных так делают, и не стесняются этого.
А вы попробуйте найти оценки погрешности для этого метода! Я не нашёл. Я, правда, смотрел только популярные вузовские учебники по численным методам, но должно же было хоть что-то найтись!

Только здесь, на странице 83, есть такой пассаж:
Цитата:
Физики издавна употребляют (без строгого обоснования)...
Ах они, физики, такие-сякие! Употребляют, понимаешь, а строго не обосновывают!
Цитата:
...ещё один способ регуляризации — дифференцирование предварительно сглаженной кривой, причём сглаживание обычно выполняют методом наименьших квадратов.
Да, это оно, то, что мне надо. Ну, думаю, сейчас математики ка-а-ак покажут этим физикам мастер-класс, ка-а-ак строго обоснуют, заодно и я формулку себе урву. А вот фигушки! Дальше идёт вывод формулы приближённой производной и эмпирическое правило, как выбирать число точек в сглаживающем окне. Так я тоже могу! А формула-то оценки погрешности где? Нетути :-(
Ну вот зачем они так, а? :? Это и есть вопрос для обсуждения.

Перехожу к разделу "самостоятельные попытки решения". Пришлось скрипеть застарелыми мозгами, гуглить-вспоминать, какие там в этом МНК формулы, выводить. С горем пополам что-то получилось, поэтому в раздел "Помогите решить/разобраться" вопрос не попал. Я подумал: не пропадать же добру, вдруг кому-нибудь ещё приспичит, а поди-ка найди справочник с этой формулой!

Итак, ограничиваемся формулировкой выше, простейший случай, сетка равномерная. Понятно, что не нарушая общности можно считать производную в нуле. Обозначим через $h$ шаг сетки, через $n$ число точек слева и справа, которые берём для МНК (всего с центральной точкой, в которой ищется производная, будет $2n+1$ точек). Абсциссы точек $x_i=ih$, $i=-n, \dots, -1, 0, 1,  \dots, n$. Ординаты $f(x_i)=y_i$. В этом случае МНК для искомой производной даёт такую простую формулу:
$$f'(0) \approx A=\frac{\sum\limits_{i=-n}^n x_iy_i}{\sum\limits_{i=-n}^n x_i^2}=\frac{3\sum\limits_{i=-n}^n iy_i}{n(n+1)(2n+1)h}.$$
Сумма в числителе преобразуется в сумму разностей от равноудалённых точек, которые, в свою очередь, являются стандартными центральными аппроксимациями производной, взятыми с некими коэффициентами:
$$\sum\limits_{i=-n}^n iy_i=2h\sum\limits_{i=1}^n i^2\left(\frac{y_i-y_{-i}}{x_i-x_{-i}}\right).$$
Нас интересует погрешность суммы в скобках, которая состоит из двух компонентов:
1) Погрешность замены производной разностным аналогом, которая, к счастью, есть буквально везде: $M_3(hi)^2/6$, где $M_3=\max |f'''|$ (позвольте мне не уточнять, по какому интервалу берётся максимум).
2) Погрешность, связанная с погрешностью $\delta$ исходной функции. Она легко считается, это $\delta/(hi)$
Итого, общая погрешность вычисления производной:
$$\Delta A=|A-f'(0)|\leqslant \frac{\sum\limits_{i=1}^n \left(M_3h^3i^4+6\delta i\right)}{n(n+1)(2n+1)h}$$
Формулу для суммы четвёртых степеней тоже не пришлось самостоятельно выводить, гуглится легко:
$\sum\limits_{i=1}^n i^4=\frac{n(n+1)(2n+1)(3n^2+3n-1)}{30}$. Итого имеем:
$$\Delta A\leqslant \frac{M_3h^2(3n^2+3n-1)}{30}+\frac{3\delta}{(2n+1)h},$$
где первое слагаемое — погрешность, обусловленная разностной аппроксимацией, второе обусловлено погрешностью самой функции. Спасибо за внимание!

-- Ср апр 19, 2017 22:04:41 --

Возможно, более наглядно было бы привести выражение в терминах ширины окна $w=2nh$, там ещё можно было сделать грубую оценку и избавиться от $n$. Но это совсем простое упражнение.

-- Ср апр 19, 2017 22:20:49 --

Ну и стоит, наверное, добавить, что оценка погрешности — это одно, а настоящая погрешность может быть значительно меньше из-за взаимной компенсации ошибок и т.п.

 Профиль  
                  
 
 Re: Погрешность численного дифференцирования аппроксимацией МНК
Сообщение25.04.2017, 15:07 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
А тупо взять матрицу ковариаций ошибок коэффициентов
$C=\sigma^2(X^TX)^{-1}$
и вектор коэффициентов формулы дифференцирования b, выраженной через коэффициенты подгоночного полинома
и найти
$\sigma^2_D=\sigma^2b^T(X^TX)^{-1}b$?

 Профиль  
                  
 
 Re: Погрешность численного дифференцирования аппроксимацией МНК
Сообщение25.04.2017, 17:06 
Заслуженный участник
Аватара пользователя


01/08/06
3131
Уфа
Т.е. рассмотреть погрешности, как случайные величины, в простейшем случае независимые, нормально распределённые с $\sigma=\delta$ ?
Интересный подход. И, наверное, оптимальный с практической точки зрения. В учебниках по численным методам такому подходу, если и уделяют место, то мало: больше интересуются погрешностью в наихудшем случае.

Кажется, тогда второе слагаемое превращается в:
$$\frac{\delta}{h}\sqrt{\frac{3}{n(n+1)(2n+1)}},$$
а всё остальное остаётся как есть.

 Профиль  
                  
 
 Re: Погрешность численного дифференцирования аппроксимацией МНК
Сообщение25.04.2017, 17:38 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
Просто если мы используем МНК, то уже принимаем, что ошибки независимые нормально распределённые с одинаковой дисперсией.

 Профиль  
                  
 
 Re: Погрешность численного дифференцирования аппроксимацией МНК
Сообщение27.04.2017, 11:26 
Аватара пользователя


11/08/11
1135
Первое слагаемое можно грубо представить в виде $\alpha M_3 w^2$. Я правильно понимаю: выходит, что при фиксированном шаге сетки $h$ чем больше мы берем эту ширину $w$, тем потенциально выше будет погрешность?

 Профиль  
                  
 
 Re: Погрешность численного дифференцирования аппроксимацией МНК
Сообщение27.04.2017, 12:43 
Заслуженный участник
Аватара пользователя


01/08/06
3131
Уфа
Конечно. Тут та же ситуация, что и с простейшей формулой $f'(x) \approx (f(x+w)-f(x-w))/(2w)$: чем больше $w$, тем больше погрешность.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: Утундрий


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group