Участник:Айнагуль Джумабекова/Песочница

Материал из MachineLearning.

Перейти к: навигация, поиск

Содержание

Введение

Постановка математической задачи

Численное дифференцирование применяется, если функцию y(x) трудно или невозможно продифференцировать аналитически - например, если она задана таблицей. Оно нужно также при решении дифференциальных уравнений при помощи разностных методов.

Изложение метода

При численном дифференцировании функцию y(x) аппроксимируют легко вычисляемой функцией \varphi(x) и приближенно полагают y'(x)=\varphi'(x). При этом можно использовать различные способы аппроксимации.

Интерполирование полиномами Лагранжа

Рассмотрим неравномерную сетку \omega_h=\{a=x_0<x_1<x_2<\dots<x_N=b\} и обозначим за h_i=x_i-x_{i-1}, i=1,2,\dots,N шаги этой сетки. В качества примера получим формулы численного дифференцирования, основанные на использовании многочлена Лагранжа L_{2,i}(x), построенного для функции u(x) по трем точкам x_{i-1},x_i,x_{i+1}. Многочлен L_{2,i}(x) имеет вид

L_{2,i}(x)=\frac {(x-x_i)(x-x_{i+1})}{h_i(h_i+h_{i+1})}u_{i-1}-\frac {(x-x_{i-1})(x-x_{i+1})}{h_ih_{i+1}}u_i+\frac {(x-x_{i-1})(x-x_i)}{h_{i+1}(h_i+h_{i+1})}u_{i+1}

Отсюда получим L_{2,i}'(x)=\frac{(2x-x_i-x_{i+1})}{h_i(h_i+h_{i+1})}u_{i-1}-\frac {(2x-x_{i-1}-x_{i+1})}{h_ih_{i+1}}u_i+\frac {(2x-x_{i-1}-x_i)}{h_{i+1}(h_i+h_{i+1})}u_{i+1}

Это выражение можно принять за приближенное значение u'(x) в любой точке x[x_{i-1},x_{i+1}]. Его удобнее записать в виде  L_{2,i}'(x)=\frac {1}{\bar{h_i}}[(x-x_{i-\frac{1}{2}}) \frac{u_{i+1}-u_i}{h_{i+1}} + (x_{i+\frac{1}{2}}-x) \frac{u_i-u_{i-1}}{h_i}] , где \bar{h_i}=0,5(h_i+h_{i+1}), x_{i-\frac{1}{2}}=x_i-0,5h_i.

В частности, при x=x_i получим L_{2,i}'(x_i)=\frac{1}{2}(\frac{h_i}{\bar{h_i}}\frac{u_{i+1}-u_i}{h_{i+1}}+\frac{h_{i+1}}{\bar{h_i}}\frac{u_i-u_{i-1}}{h_i}), И если сетка равномерна, h_{i+1}=h_i=h, то приходим к центральной разностной производной, L_{2,i}'(x_i)=u_{\dot{x},i}. При использовании интерполяционного многочлена первой степени точно таким образом можно получить односторонние разностные производные u_{\bar{x},i} и u_{x,i}. Далее вычисляя вторую производную многочлена L_{2,i}(x), получим приближенное выражение для u''(x) при x[x_{i-1},x_{i+1}]:

u''(x)L_{2,i}''(x)=\frac{1}{\bar{h_i}}(\frac{u_{i+1}-u_i}{h_{i+1}}- \frac{u_i-u_{i-1}}{h_i})

На равномерной сетке это выражение совпадает со второй разностной производной u_{\bar{x}x,i}. Ясно, что для приближенного вычисления дальнейших производных уже недостаточно многочлена L_{2,i}(x), надо привлекать многочлены более высокого порядка и тем самым увеличивать число узлов, участвующих в аппроксимации.

Порядок погрешности аппроксимации зависит как от порядка интерполяционного многочлена, так и от расположения узлов интерполирования. Получим выражение для погрешности аппроксимации, возникающей при замене u'(x) выражением L_{2,i}'(x). Будем считать, что x[x_{i-1},x_{i+1}] и что величины h_i, h_{i+1} имеют один и тот же порядок малости при измельчении сетки. По формуле Тейлора в предположении ограниченности u^{(4)}(x) получим u_{i+k}=u(x)+(x_{i+k}-x)u'(x)+\frac{{(x_{i+k}-x)}^2}{2}u''(x) +\frac{{(x_{i+k}-x)}^3}{3}u'''(x) +O(h^4),

где k=01,h=max\{h_i,h_{i+1}\}

Отсюда приходим к следующим разложениям разностных отношений

\frac{u_i-u_{i-1}}{h_i}=u'(x)-(x-x_{i-\frac{1}{2}})u''(x)+(\frac{{(x-x_{i-\frac{1}{2}})}^2}{2}+\frac{h_i^2}{24})u'''(x)+O(h^3)

\frac{u_{i+1}-u_i}{h_{i+1}}=u'(x)-(x_{i+\frac{1}{2}}-x)u''(x)+(\frac{{(x_{i+\frac{1}{2}}-x)}^2}{2}+\frac{h_{i+1}^2}{24})u'''(x)+O(h^3)

Подставляя полученные формулы в выражение для разностной производной и приводя подобные слагаемые получим

L_{2,i}'(x)=u'(x)-[\frac{{(x-x_i)}^2}{2}-\frac{(h_{i+1}-h_i)(x-x_i)}{3}-\frac{h_ih_{i+1}}{6}]u'''(x)+O(h^3), x[x_{i-1},x_{i+1}].

Отсюда видно,что разностное выражение аппроксимирует u'(x) со вторым порядком.

Если подставить полученные ранее разностные отношения в выражение для второй производной многочлена L_{2,i}(x), то имеем

L_{2,i}''(x)=u''(x)+(x_i-x + \frac{h_{i+1}-h_i}{3})u'''(x)+O(h^2)

Из этого выражения видно, что даже на равномерной сетке,т.е. когда h_i=h_{i+1}, второй порядок аппроксимации имеет место лишь в точке x=x_i, а относительно других точек (например,x=x_{i+1}) выполняется аппроксимация только первого порядка. Таким образом, получим аппроксимацию лишь первого порядка.

Личные инструменты