Участник:Айнагуль Джумабекова/Песочница
Материал из MachineLearning.
Строка 10: | Строка 10: | ||
<tex>u''(x)</tex>≈<tex>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})</tex> | <tex>u''(x)</tex>≈<tex>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})</tex> | ||
+ | |||
+ | == Введение == | ||
+ | === Постановка математической задачи === | ||
+ | Численное дифференцирование применяется, если функцию <tex>y(x)</tex> трудно или невозможно продифференцировать аналитически - например, если она задана таблицей. Оно нужно также при решении дифференциальных уравнений при помощи разностных методов. | ||
+ | |||
+ | == Изложение метода == | ||
+ | |||
+ | При численном дифференцировании функцию <tex>y(x)</tex> аппроксимируют легко вычисляемой функцией <tex>\varphi(x)</tex> и приближенно полагают | ||
+ | <tex>y'(x)=\varphi'(x)</tex>. При этом можно использовать различные способы аппроксимации. | ||
+ | |||
+ | ===Интерполирование полиномами Лагранжа=== | ||
+ | |||
+ | Рассмотрим неравномерную сетку <tex>\omega_h=\{a=x_0<x_1<x_2<\dots<x_N=b\}</tex> | ||
+ | и обозначим за <tex>h_i=x_i-x_{i-1}</tex>, <tex>i=1,2,\dots,N</tex> шаги этой сетки. В качества примера получим формулы численного дифференцирования, основанные на использовании многочлена Лагранжа <tex>L_{2,i}(x)</tex>, построенного для функции <tex>u(x)</tex> по трем точкам <tex>x_{i-1},x_i,x_{i+1}</tex>. | ||
+ | Многочлен <tex>L_{2,i}(x)</tex> имеет вид | ||
+ | |||
+ | <tex>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}</tex> | ||
+ | |||
+ | Отсюда получим | ||
+ | <tex>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}</tex> | ||
+ | |||
+ | Это выражение можно принять за приближенное значение <tex>u'(x)</tex> в любой точке <tex>x</tex>∈ <tex>[x_{i-1},x_{i+1}]</tex>. | ||
+ | Его удобнее записать в виде | ||
+ | <tex> L_{2,i}'(x)=\frac {1}{\bar{h_i}}[(x-<tex>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}]</tex> , где | ||
+ | <tex>\bar{h_i}=0,5(h_i+h_{i+1})</tex>, <tex>x_{i-\frac{1}{2}}=x_i-0,5h_i</tex>. | ||
+ | |||
+ | В частности, при <tex>x=x_i</tex> получим | ||
+ | <tex>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})</tex>, | ||
+ | И если сетка равномерна, <tex>h_{i+1}=h_i=h</tex>, то приходим к центральной разностной производной, <tex>L_{2,i}'(x_i)=u_{\dot{x},i}</tex>. | ||
+ | При использовании интерполяционного многочлена первой степени точно таким образом можно получить односторонние разностные производные <tex>u_{\bar{x},i}</tex> и <tex>u_{x,i}</tex>. | ||
+ | Далее вычисляя вторую производную многочлена <tex>L_{2,i}(x)</tex>, получим приближенное выражение для <tex>u''(x)</tex> при <tex>x</tex>∈<tex>[x_{i-1},x_{i+1}]</tex>: | ||
+ | |||
+ | <tex>u''(x)</tex>≈<tex>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})</tex> | ||
+ | |||
+ | На равномерной сетке это выражение совпадает со второй разностной производной <tex>u_{\bar{x}x,i}</tex>. Ясно, что для приближенного вычисления дальнейших производных уже недостаточно многочлена <tex>L_{2,i}(x)</tex>, надо привлекать многочлены более высокого порядка и тем самым увеличивать число узлов, участвующих в аппроксимации. |
Версия 17:57, 17 декабря 2008
≈
Содержание |
Введение
Постановка математической задачи
Численное дифференцирование применяется, если функцию трудно или невозможно продифференцировать аналитически - например, если она задана таблицей. Оно нужно также при решении дифференциальных уравнений при помощи разностных методов.
Изложение метода
При численном дифференцировании функцию аппроксимируют легко вычисляемой функцией и приближенно полагают . При этом можно использовать различные способы аппроксимации.
Интерполирование полиномами Лагранжа
Рассмотрим неравномерную сетку и обозначим за , шаги этой сетки. В качества примера получим формулы численного дифференцирования, основанные на использовании многочлена Лагранжа , построенного для функции по трем точкам . Многочлен имеет вид
Отсюда получим
Это выражение можно принять за приближенное значение в любой точке ∈ . Его удобнее записать в виде , где , .
В частности, при получим , И если сетка равномерна, , то приходим к центральной разностной производной, . При использовании интерполяционного многочлена первой степени точно таким образом можно получить односторонние разностные производные и . Далее вычисляя вторую производную многочлена , получим приближенное выражение для при ∈:
≈
На равномерной сетке это выражение совпадает со второй разностной производной . Ясно, что для приближенного вычисления дальнейших производных уже недостаточно многочлена , надо привлекать многочлены более высокого порядка и тем самым увеличивать число узлов, участвующих в аппроксимации.