Интерполяция и аппроксимация функций

Материал из testwiki
Перейти к навигации Перейти к поиску

Алгебраическая интерполяция

Табличное задание функции

При алгебраической интерполяции для представления информации о функции f(x) используется таблица значений этой функции:

x0x1x2..
f(x0)f(x1)f(x2)..

Собственно, задачей вычислительной математики здесь является задача построения по таблице такой функции f~, которая бы не сильно отличалась от f и выработка ограничений, и разработка критериев, при которых задача имеет решение.

Простейшие способы интерполяции

Простейшим способом интерполяции функции f по таблице является интерполяция методом ближайшего соседа. Один из ее вариантов формулируется так:

f~(x)=f(xi),i:ji,|xxj|>|xxi|

То есть за значение функции f~(x) берется значение функции f(x) в точке, ближайшей к рассматриваемой.

Более точным способом интерполяции является кусочно-линейная интерполяция. При таком подходе значение f(x) интерполируется по двум соседним с точкой x точкам.

f~(x)=f(xi)(xi+1x)+f(xi+1)(xxi)xi+1xi,i:xi<x<xi+1

(здесь подразумевается монотонное возрастание последовательности xi)

Интересно понять, с какой точностью интерполяционные формулы аппроксимируют функцию f.

Предположим, что производная функции f ограничена величиной g. Тогда на отрезке [xi,xi+1] функция f не может отклониться от линейной интерполяции более, чем на h(g|f(xi+1)f(xi)xi+1xi|). Если, кроме того, вторая производная функции f ограничена, можно построить более точную оценку:

TODO

Интерполяционные полиномы

Алгебраическим интерполяционным многочленом Pn(x,f,x0,...,xn) называется многочлен

Pn(x)=c0+c1x+c2x2+...+cnxn

степени не выше n, принимающий в точках x0,x1,...,xn значения f(x0),f(x1),...,f(xn)

Теорема. Если заданы попарно различные узлы x0,x1,x2,...,xn и значения f(x0),f(x1),...,f(xn), то алгебраический интерполяционный многочлен cсуществует и единственен.


Доказательство Сначала докажем, что существует не более чем один интерполяционный многочлен, а затем построим его. Если бы их было два, то их разность - многочлен степени не больше n, обращалась бы в 0 в n+1 точке - x0,x1,...,xn, что невозможно для ненулевого многочлена.

В качестве примера интерполяционного многочлена можно привести Интерполяционный многочлен Лагранжа (доказательство существования очевидно из построения, приведенного по ссылке).

Интерполяционный многочлен в форме Ньютона

Введем понятие разностного отношения. Разностным отношением нулевого порядка в точке xi назовем значение f(xi). Разностное отношение первого порядка определяется как

f(xi,xj)=f(xj)f(xi)xjxi

А n+1-го порядка - рекурсивно через разностное отношение n-го порядка:

f(x0,x1,...,xn+1)=f(x1,x2,...,xn+1)f(x0,x1,...,xn)xn+1x0

Тогда можно показать, что интерполяционный многочлен может быть записан в следующей форме:

Pn(x,f,x0,...,xn)=f(x0)+(xx0)f(x0,x1)+...+(xx0)(xx1)...(xxn1)f(x0,...,xn)

TODO

Сплайн-интерполяция

Основная идея сплайн-интерполяции функций - построение кусочно-полиномиальной интерполяции, при которой остается непрерывной функция f~(x) и несколько ее первых производных.

Предположим, мы хотим получить функцию, непрерывную вместе со своей первой производной.

Тогда для начала построим на заданной таблице кусочно-линейную интерполяцию f~1(x). Это непрерывная функция, производная которой в каждом узле xi имеет скачок

f~1(xi+δx)f~1(xiδx)=fi+1fixi+1xififi1xixi1

Теперь построим полином 3-ей степени f2,i(x) такой, что его производная точке xi:

f~2,i(xi)=f~1(xi+δx)f~1(xiδx)

А значения в точках xi и xi+1 равны 1.

Если теперь на отрезке [xi,xi+1] к функции f1(x) прибавить f2,i(x), получившаяся функция будет непрерывна в xi вместе со своей первой производной.

Осталось провести аналогичную операцию на всех остальных отрезках [xi,xi+1], учитывая на каждом следующем отрезке производную уже построенной функции на предыдущем отрезке.

Тригонометрическая интерполяция

Другим важным видом интерполяции является интерполяция функции f тригонометрическим полиномом, называемой еще интерполяцией полиномом Фурье:

f~(x)=k=0K(aksin(2πxL)+bkcos(2πxL))

Интерполирующая функция представляет собой сумму конечного числа гармоник ряда Фурье.

Этот вид интерполяции особенно осмысленен для периодических функций. Пусть есть функция f(x) с периодом L, т.е. для любого x:

f(x+L)=f(x)

Пусть эта функция задана таблицей на периодической сетке:

xn=LNn+x0,n=0,1,...,N1

своими значениями

fn=f(xn)

Оказывается, при правильном выборе N,K,x0, существует только один полином f~(x).

Неклассические методы интерполяции

В различных приложениях используются различные методы интерполяции, не сводящиеся к классическим. Рассмотрим некоторые из них.

Реконструкция функций

Для реконструкции разрывных функций часто применяют так называемую minmod-реконструкцию. Суть ее в следующем:

Распределение функции на отрезке [xm1+xm2,xm+xm+12] полагается линейным, а коэффициент наклона выбирается как q=minmod(fm+1fmxm+1xm,fmfm1xmxm1), где minmod(a,b)=sign(a)+sign(b)2min(|a|,|b|)

Всюду гладкая интерполяция

Есть еще такая всюду гладкая интерполяция: f(x)=fi(xxi)21(xxi)2