Участник:Айнагуль Джумабекова/Песочница
Материал из MachineLearning.
| Строка 58: | Строка 58: | ||
Таким образом, получим аппроксимацию лишь первого порядка.  | Таким образом, получим аппроксимацию лишь первого порядка.  | ||
| + | ===Интеполирование кубическими сплайнами===  | ||
Для того, чтобы избежать больших погрешностей в процессе приближения, весь отрезок [a,b] разбивают на частичные отрезки и на каждом из частичных отрезков приближенно заменяют функцию <tex>f(x)</tex> многочленом невысокой степени (так называемая кусочно-полиномиальная интерполяция).  | Для того, чтобы избежать больших погрешностей в процессе приближения, весь отрезок [a,b] разбивают на частичные отрезки и на каждом из частичных отрезков приближенно заменяют функцию <tex>f(x)</tex> многочленом невысокой степени (так называемая кусочно-полиномиальная интерполяция).  | ||
| - | Одним из способов интерполирования на всем отрезке является интерполирование с помощью сплайн-функций. Сплайн-функцией или сплайном называют кусочно-полиномиальную функцию, определенную на отрезке [a,b] и имеющую на этом отрезке некоторое число непрерывных производных.  | + | Одним из способов интерполирования на всем отрезке является интерполирование с помощью сплайн-функций.   | 
| + | |||
| + | Сплайн-функцией или сплайном называют кусочно-полиномиальную функцию, определенную на отрезке [a,b] и имеющую на этом отрезке некоторое число непрерывных производных.  | ||
Преимущество сплайнов перед обычной интерполяцией является, во-первых их сходимость, во-вторых, устойчивость процесса вычислений.  | Преимущество сплайнов перед обычной интерполяцией является, во-первых их сходимость, во-вторых, устойчивость процесса вычислений.  | ||
| + | |||
Построение кубического сплайна.  | Построение кубического сплайна.  | ||
| + | |||
Пусть на  [a,b] задана непрерывная функция <tex>f(x)</tex>. Введем сетку  | Пусть на  [a,b] задана непрерывная функция <tex>f(x)</tex>. Введем сетку  | ||
<tex>a=x_0<x_1<x_2<\dots<x_N=b</tex>  | <tex>a=x_0<x_1<x_2<\dots<x_N=b</tex>  | ||
и обозначим <tex>f_i=f(x_i)</tex>, <tex>i=0,1,\dots,N</tex>.  | и обозначим <tex>f_i=f(x_i)</tex>, <tex>i=0,1,\dots,N</tex>.  | ||
Сплайном соответствующим данной функции <tex>f(x)</tex> и данным узлам <tex>\{x_i\}_{i=0}^N</tex> называется функция <tex>s(x)</tex>, удовлетворяющая следующим условиям:  | Сплайном соответствующим данной функции <tex>f(x)</tex> и данным узлам <tex>\{x_i\}_{i=0}^N</tex> называется функция <tex>s(x)</tex>, удовлетворяющая следующим условиям:  | ||
| + | |||
а) на каждом сегменте <tex>[x_i-1,x_i]</tex>, <tex>i=1,2,\dots,N</tex>  функция <tex>s(x)</tex> является многочленом третьей степени;  | а) на каждом сегменте <tex>[x_i-1,x_i]</tex>, <tex>i=1,2,\dots,N</tex>  функция <tex>s(x)</tex> является многочленом третьей степени;  | ||
| + | |||
б) функция <tex>s(x)</tex>, а также  её первая и вторая производная производные непрерывны на [a,b];  | б) функция <tex>s(x)</tex>, а также  её первая и вторая производная производные непрерывны на [a,b];  | ||
| + | |||
в) <tex>s(x_i)=f(x_i)</tex>,<tex>i=1,2,\dots,N</tex>;  | в) <tex>s(x_i)=f(x_i)</tex>,<tex>i=1,2,\dots,N</tex>;  | ||
| + | |||
На каждом из отрезков <tex>[x_i-1,x_i]</tex>, <tex>i=1,2,\dots,N</tex>  будем искать функцию <tex>s(x)=s_i(x)</tex> в виде многочлена третьей степени  | На каждом из отрезков <tex>[x_i-1,x_i]</tex>, <tex>i=1,2,\dots,N</tex>  будем искать функцию <tex>s(x)=s_i(x)</tex> в виде многочлена третьей степени  | ||
| - | <tex>s_i(x)=a_i+b_i(x-x_i)+\frac{c_i}{2}(x-x_i)^2 +\frac{d_i}{6}(x-x_i)^3</tex>  | + | <tex>s_i(x)=a_i+b_i(x-x_i)+\frac{c_i}{2}(x-x_i)^2 +\frac{d_i}{6}(x-x_i)^3</tex>,  | 
| - | <tex>x_i-1<=x<=x_i</tex>, <tex>i=1,2,\dots,N</tex>,   | + | где <tex>x_i-1<=x<=x_i</tex>, <tex>i=1,2,\dots,N</tex>, где <tex>a_i,b_i,c_i,d_i</tex> - коэффициенты, подлежащие определению.   | 
| - | где <tex>a_i,b_i,c_i,d_i</tex> - коэффициенты, подлежащие определению.   | + | |
Доказано, что существует единственный кубический сплайн, определяемый условиями а)-в) и граничными условиями <tex>s''(a)=s''(b)=0</tex>.   | Доказано, что существует единственный кубический сплайн, определяемый условиями а)-в) и граничными условиями <tex>s''(a)=s''(b)=0</tex>.   | ||
| + | |||
Для их нахождения используются следующие формулы  | Для их нахождения используются следующие формулы  | ||
| + | |||
1) <tex>a_i=f(x_i)</tex>,<tex>i=1,2,\dots,N</tex>    | 1) <tex>a_i=f(x_i)</tex>,<tex>i=1,2,\dots,N</tex>    | ||
| Строка 100: | Строка 110: | ||
Рассмотрим оценку погрешности метода, которая зависит от выбора сеток и от гладкости <tex>f(x)</tex>. Для простоты изложения допустим, что сетка равномерная, т.е.  | Рассмотрим оценку погрешности метода, которая зависит от выбора сеток и от гладкости <tex>f(x)</tex>. Для простоты изложения допустим, что сетка равномерная, т.е.  | ||
| - | <tex>\omega_h=\{x_i=a+ih, i=0,1,\dots,N\}</tex>  | + | <tex>\omega_h=\{x_i=a+ih, i=0,1,\dots,N\}</tex> с  шагом <tex>b=\frac{b-a}{N}</tex>  | 
| - | с  шагом <tex>b=\frac{b-a}{N}</tex>  | + | |
| - | От функции <tex>f(x)</tex> будем требовать существования непрерывной на [a,b] четвертой производной, <tex>f(x)</tex>   | + | От функции <tex>f(x)</tex> будем требовать существования непрерывной на [a,b] четвертой производной, <tex>f(x)</tex>∈ <tex>C^{(4)}[a,b]</tex>. Кроме того, предположим, что выполнены граничные условия <tex>f''(a)=f''(b)=0</tex> и такие же условия для сплайнов. Обозначим,  | 
<tex>||g(x)||_{C[a,b]}=\max_{[a,b]}|g(x)|</tex>,    <tex>M_4=||f^4(x)||_{C[a,b]}</tex>  | <tex>||g(x)||_{C[a,b]}=\max_{[a,b]}|g(x)|</tex>,    <tex>M_4=||f^4(x)||_{C[a,b]}</tex>  | ||
| Строка 109: | Строка 118: | ||
Пусть <tex>s_h(x)</tex> - кубический сплайн, построенный для функции <tex>f(x)</tex> на сетке <tex>\omega_h</tex>. В следующей теореме приведены оценки погрешности интерполяции для функции <tex>f(x)</tex> и её производных <tex>f'(x)</tex>, <tex>f''(x)</tex>  | Пусть <tex>s_h(x)</tex> - кубический сплайн, построенный для функции <tex>f(x)</tex> на сетке <tex>\omega_h</tex>. В следующей теореме приведены оценки погрешности интерполяции для функции <tex>f(x)</tex> и её производных <tex>f'(x)</tex>, <tex>f''(x)</tex>  | ||
| - | Теорема   | + | '''Теорема'''   | 
| - | 	Для <tex>f(x)</tex>   | + | |
| + | Для <tex>f(x)</tex>∈ <tex>C^{(4)}[a,b]</tex> справедливы оценки   | ||
		<tex>||f(x)-s_h(x)||_{C[a,b]}<=M_4h^4</tex>  | 		<tex>||f(x)-s_h(x)||_{C[a,b]}<=M_4h^4</tex>  | ||
| Строка 122: | Строка 132: | ||
Обычно дифференцирование кубического сплайна позволят определить первую и вторую производную интерполяционного многочлена с хорошей точностью. Если надо вычислить более высокие производные, то целесообразно строить сплайны высоких порядков. Из-за большей трудоемкости этот способ редко используется. Способ дифференцирования с помощью сплайновой интерполяцией теоретически мало исследован.  | Обычно дифференцирование кубического сплайна позволят определить первую и вторую производную интерполяционного многочлена с хорошей точностью. Если надо вычислить более высокие производные, то целесообразно строить сплайны высоких порядков. Из-за большей трудоемкости этот способ редко используется. Способ дифференцирования с помощью сплайновой интерполяцией теоретически мало исследован.  | ||
| + | ===Тригонометрическая интерполяция===  | ||
Не всякую функцию целесообразно приближать алгебраическими многочленами.  | Не всякую функцию целесообразно приближать алгебраическими многочленами.  | ||
Рассмотрим тригонометрическую интерполяцию.  | Рассмотрим тригонометрическую интерполяцию.  | ||
Версия 12:15, 26 декабря 2008
Содержание | 
Введение
Постановка математической задачи
Численное дифференцирование применяется, если функцию  трудно или невозможно продифференцировать аналитически - например, если она задана таблицей. Оно нужно также при решении дифференциальных уравнений при помощи разностных методов.
Изложение метода
При численном дифференцировании функцию  аппроксимируют легко вычисляемой функцией 
  и приближенно полагают 
. При этом можно использовать различные способы аппроксимации.
Интерполирование полиномами Лагранжа
Рассмотрим неравномерную сетку 
и обозначим за 
, 
 шаги этой сетки. В качества примера получим формулы численного дифференцирования, основанные на использовании многочлена Лагранжа 
, построенного для функции 
 по трем точкам 
. 
Многочлен 
 имеет вид 
Отсюда получим
Это выражение можно принять за приближенное значение  в любой точке 
∈ 
. 
Его удобнее записать в виде
 , где
, 
.
В частности, при  получим
,
И если сетка равномерна, 
, то приходим к центральной разностной производной, 
.
При использовании интерполяционного многочлена первой степени точно таким образом можно получить односторонние разностные производные 
 и 
.
Далее вычисляя вторую производную многочлена 
, получим приближенное выражение для 
 при 
∈
:
≈
На равномерной сетке это выражение совпадает со второй разностной производной . Ясно, что для приближенного вычисления дальнейших производных уже недостаточно многочлена 
, надо привлекать многочлены более высокого порядка и тем самым увеличивать число узлов, участвующих в аппроксимации.
Порядок погрешности аппроксимации зависит как от порядка интерполяционного многочлена, так и от расположения узлов интерполирования. Получим выражение для погрешности аппроксимации, возникающей при замене   выражением 
. Будем считать, что 
∈ 
 и что величины 
  имеют один и тот же порядок малости при измельчении сетки. По формуле Тейлора в предположении ограниченности 
 получим
,
где ,±
Отсюда приходим к следующим разложениям разностных отношений
Подставляя полученные формулы в выражение для разностной производной и приводя подобные слагаемые получим
, 
∈ 
.
Отсюда видно,что разностное выражение аппроксимирует  со вторым порядком.
Если подставить полученные ранее разностные отношения в выражение для второй производной многочлена , то имеем 
Из этого выражения видно, что даже на равномерной сетке,т.е. когда , второй порядок аппроксимации имеет место лишь в точке 
, а относительно других точек (например,
) выполняется  аппроксимация только первого порядка.
Таким образом, получим аппроксимацию лишь первого порядка.
Интеполирование кубическими сплайнами
Для того, чтобы избежать больших погрешностей в процессе приближения, весь отрезок [a,b] разбивают на частичные отрезки и на каждом из частичных отрезков приближенно заменяют функцию  многочленом невысокой степени (так называемая кусочно-полиномиальная интерполяция).
Одним из способов интерполирования на всем отрезке является интерполирование с помощью сплайн-функций. 
Сплайн-функцией или сплайном называют кусочно-полиномиальную функцию, определенную на отрезке [a,b] и имеющую на этом отрезке некоторое число непрерывных производных. Преимущество сплайнов перед обычной интерполяцией является, во-первых их сходимость, во-вторых, устойчивость процесса вычислений.
Построение кубического сплайна.
Пусть на  [a,b] задана непрерывная функция . Введем сетку
и обозначим 
, 
.
Сплайном соответствующим данной функции 
 и данным узлам 
 называется функция 
, удовлетворяющая следующим условиям:
а) на каждом сегменте , 
  функция 
 является многочленом третьей степени;
б) функция , а также  её первая и вторая производная производные непрерывны на [a,b];
в) ,
;
На каждом из отрезков , 
  будем искать функцию 
 в виде многочлена третьей степени
,
где , 
, где 
 - коэффициенты, подлежащие определению. 
Доказано, что существует единственный кубический сплайн, определяемый условиями а)-в) и граничными условиями 
. 
Для их нахождения используются следующие формулы
1) ,
  
2) Для определения коэффициентов  получаем систему уравнений
  ,
(система решается методом прогонки)
По найденным коэффициентам  коэффициенты 
, 
 определяются с помощью явных формул
3)  
4)   
Найдем производные введенного кубического сплайна, имеем
Рассмотрим оценку погрешности метода, которая зависит от выбора сеток и от гладкости . Для простоты изложения допустим, что сетка равномерная, т.е.
 с  шагом 
От функции  будем требовать существования непрерывной на [a,b] четвертой производной, 
∈ 
. Кроме того, предположим, что выполнены граничные условия 
 и такие же условия для сплайнов. Обозначим,
,    
Пусть  - кубический сплайн, построенный для функции 
 на сетке 
. В следующей теореме приведены оценки погрешности интерполяции для функции 
 и её производных 
, 
Теорема
Для ∈ 
 справедливы оценки 
		
		
		
Из этих оценок следует, что при    (т.е. при 
)  последовательности  
, 
 сходятся соответственно к функциям 
 
.
Обычно дифференцирование кубического сплайна позволят определить первую и вторую производную интерполяционного многочлена с хорошей точностью. Если надо вычислить более высокие производные, то целесообразно строить сплайны высоких порядков. Из-за большей трудоемкости этот способ редко используется. Способ дифференцирования с помощью сплайновой интерполяцией теоретически мало исследован.
Тригонометрическая интерполяция
Не всякую функцию целесообразно приближать алгебраическими многочленами.
Рассмотрим тригонометрическую интерполяцию.
Если  - периодическая функция с периодом l, то естественно строить приближения с помощью функций 
	
Таким образом, тригонометрическая интерполяция состоит в замене  тригонометрическим многочленом 
,
коэффициенты которого отыскиваются из системы уравнений
,
где 

