Обратное интерполирование
Задача обратного интерполирования: по заданному значению функции найти аргумент , при котором . Функция y=f(x) задана таблично.
Предположим, что на отрезке [a, b], содержащем узлы интерполяции, функция f(x) монотонна. Тогда существует однозначная обратная функция x=F(y). Она задана той же таблицей, что и y=f(x), только теперь аргументом будет значение , а -соответствующее значение функции.
В этом случае обратное интерполирование сводится к обычному интерполированию для функции x=F(y). Т.е. строится интерполяционный многочлен ( например, по формуле Лагранжа) – многочлен . При подстановке в значения - получаем .
Второй способ применим ко всякой функции f(x)( не обязательно к монотонной). Не меняя ролями функцию и аргумент, записываем по какой – либо формуле интерполяционный многочлен . Неизвестное значение находим приближенно, решая уравнение . Если число узлов велико, то этот способ нахождения приводит к решению системы алгебраических уравнений высокого порядка.
7. Сплайн – интерполяция. (spline – рейка, планка)
Механические сплайны – гибкие деревянные рейки, закрепленные на концах. В узлах (точках) интерполяции подвешивают грузила. Сплайн принимает форму, минимизирующую его потенциальную энергию. Если сплайн представить функцией S(x) , то S и непрерывны на [ ].
Кубическая сплайн – функция, удовлетворяющая условиям называется естественным кубическим сплайном. С математической точки зрения кубическая сплайн – функция – единственная функция, обладающая свойством минимальной кривизны, среди всех функций, интерполирующих данные точки и имеющих квадратичную интегрируемую вторую производную.
Т.е. кубический сплайн есть самая гладкая из функций, интерполирующих заданные точки.
Пусть отрезок [a, b] разбит на n частей точками
Сплайном k-ой степени называется функция, представляющая собой многочлен не выше к-ой степени на каждом из последовательно примыкающих друг к другу интервалов причем в точках стыка двух интервалов функция непрерывна вместе со своими производными до порядка не выше к
Сплайн 1-ой степени – кусочно-линейная функция (непрерывная). Производная терпит разрыв в точках излома.
Задача интерполяции функции на отрезке [a, b] кубическим сплайном (сплайном 3-ей степени) состоит в нахождении функции S(x), равной многочлену третьей степени на каждом отрезке т.е. (19)
Значения сплайна в узлах интерполяции равны и сплайн-функция S(x) непрерывна в узлах интерполяции вместе с производными первого и второго порядков.
В сплайне (19) неизвестные . Интервал [a, b] разбит на n участков. Т. о. имеем 4n неизвестных: (i*p) = 4n.
Уравнения (20) – (23) дают 4n – 2 уравнения. Т.о. для определения величин необходимо ввести еще каких-либо 2 уравнения (ограничения). В качестве ограничений выбирается одна из 3-х пар краевых условий:
Построим сплайн, удовлетворяющий краевым условиям I типа.
Введем величины , называемые наклонами сплайна в узлах (i=0,1,..,n)
Интерполяционный кубический сплайн вида
(24)
где удовлетворяет условиям (20) – (23) для любых
Из условия (23) и краевых условий (I) можно определить параметры .
Действительно, легко проверить, подставляя в (24) и т.д., что
Беря вторые производные от S(x) по х и подставляя и , получаем
(25)
И краевых условий (I) и условий (25) получим систему из n+1 линейных уравнений относительно неизвестных
Из равенства получаем
(26)
В результате имеем:
(28)
Решая систему (28) методом Гаусса, получаем в результате прямого хода коэффициенты:
(29)
После обратного хода (обратной прогонки) получаем результат:
(30)
Результаты (29) и (30) позволяют построить кубический сплайн.
Построение сплайна с учетом краевых условий (II) производится аналогично.
Точность интерполяционной функции f(x), имеющей на отрезке [a, b] непрерывные производные до 3-его порядка включительно, кубическим сплайном S(x) по точкам равномерного разбиения отрезка с шагом h при любых краевых условиях (I – III), оценивается неравенством:
где (31)
Неравенство (31) дает завышенную оценку точности.
Пример: На отрезке [0, ] построить кубический сплайн с шагом , интерполирующий функцию , если заданы значения функции в трех узлах интерполяции:
x | |||
Sin(x) |
С помощью интерполяционной формулы вычислить приближенное значение и сравнить с точным значением 0,5.
Решение: Т.к. задано 2 отрезка, то представим сплайн в виде:
Краевые условия (I) имеют вид:
Из системы уравнений (28) имеем:
Находим
Подставляем значения в (24). Получаем:
( т.к. и числа, содержащие
Аналогично:
Получаем для : (т.к.
Т. о.
Погрешность меньше, чем !
Мы могли бы получить значение по формулам (29), (30)
Действительно, имеем:
Далее находим
Блок-схема программы построения кубического сплайна и построения полинома Лагранжа представлены на рис. 4.3 и рис. 4.4
Пусть отрезок [a,b] разбит на n равных частей и в точках xi (i=0,1,2,...,n; x0=a, хn=b) некоторая функция принимает значения yi. Для переменной x, принадлежащей части разбиения [xi-1 ,xi] (i=1,... ,n), определена функция (кубический многочлен)
Здесь - шаг разбиения отрезка.
Неизвестные mi определяются рекуррентными соотношениями
n0 = A; mn = В; mi = Limi+1 + Mi (i=n-1,n-2,...,0)
после предварительного вычисления вспомогательных величин Mi, Li
по рекуррентным формулам
L0 = 0, M0 = m0, Mi = Li(Mi-1 – bi) (i=1,2,...,n-1),
где
Величины А и В должны быть заданы. При построении кубического сплайна, интерполирующего дифференцируемую функцию y = f (x)
по системе точек, полагают A = f ' (a), S = f ' (b) (краевые условия I типа). Выбор необходимой формулы Si (x) для заданного значения переменной x определяется целым числом i:
В соответствии c условиями задачи для рассмотренного примера в программах принято m0 = 1, mn = 0.
Рис 4.3 Блок-схема программы построения кубического сплайна
Блок – схема программы построения интерполяционного многочлена Лагранжа в комментариях не нуждается.
Рис.4.4 Блок - схема программы построения интерполяционного многочлена Лагранжа
Лабораторная работа 5