Рациональная интерполяция

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

Версия от 19:25, 18 сентября 2011; Kirill Heptagrammaton (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Содержание

Введение

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

R(x)=\frac{a_0+a_1x+\dots+a_px^p}{b_0+b_1x+\dots+b_px^p}, p+q+1=n

Коэффициенты a_i, b_i можно найти из совокупности соотношений R(x_j)=y_j, j=1,\ldots,n, которые можно записать в виде

 \sum_{j=0}^{p} a_j x_j^j-f(x_i)\sum_{j=0}^{q}b_j x_i^j=0, i=1,\ldots, n

Таким образом получаем систему n линейных алгебраических уравнений относительно n+1 неизвестных. Функция R(x) может быть записана в явном виде в случаях, когда n нечётное и p=q, и когда n чётное и p-q=1. Для этого следует вычислить обратные разделенные разности, определяемые условиями

f^{-}(x_k;x_l)=\frac{x_k-x_l}{f(x_k)-f(x_l)}

и рекуррентным соотношением

 f^{-}(x_k;\ldots;x_l)=\frac{x_l-x_k}{f^{-}(x_{k+1};\ldots;x_l)-f^{-}(x_k;\ldots;x_{l-1})}

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

 f^{-}(x_k;\ldots;x_n)=f(x_1)+\frac{x-x_1}{f^{-}(x_1;x_2)+\frac{x-x_2} {f^{-}(x_1;x_2;x_3)+\dots+ \frac{x-x_{n-1}}{f^{-}(x_k;\ldots;x_{n}) } } }

Дробно-рациональное интерполирование при правильном выборе узлов целесообразно использовать для функций с нерегулярным характером поведения.

Погрешность вычислений

Пример использования

Выполним интерполяцию для узлов интерполяции, полученных из функции f(t)=ln(t).
Узлы интерполяции:

t:=[1., 2., 3., 4., 5.];
f(t):= [0., 0.69314718055994530942, 1.0986122886681096914, 1.3862943611198906188, 1.6094379124341003746];
Выполняя интерполяцию по заданным узлам, получаем: 
\Omega(t):=\frac{t-1.}{1.4426950408889634074+\frac{t-2.}{2.6470193430160504848+\frac{t-3.}{5.0781780711298101893+.72138672314187706016*t}}}

Выполним построение графиков функции и выполним оценку погрешностей:

Для исследования функции Ω(t) выполним экстраполяцию внутрь таблицы, взяв для определенности t=1.161.
ln(1.161)=0.14928170271575444560
Ω(1.161)=0.14858464422075798083

Вычислим относительную погрешность для данного значения при использовании рациональной интерполяции
δΩ(1.161):=0.0046913225700552061895

Выполним экстраполяцию вперед таблицы, взяв для определенности t=6.103.
δΩ(6.103):=0.00033164210935389932321

Литературы

  1. Н.С. Бахвалов, Н.П. Жидков, Г.М. Кобельков. Численные методы. Изд-во "Лаборатория базовых знаний". 2003.

См. также

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