- •Лабораторная работа № 2 интерполяция функций с помощью сплайна
- •1 Цель работы
- •2. Задачи работы
- •3. Вводная часть
- •4. Теоретические основы
- •4.1. Постановка задачи
- •4.2. Выбор краевых условий
- •4.3. Погрешность аппроксимации кубическим сплайном
- •4.4. Алгоритм построения интерполяционного кубического сплайна
- •4.2. Метод прогонки
- •5. Численный эксперимент
- •6. Порядок решения задачи на эвм
- •7. Требования к отчету по лабораторной работе
- •8. Вопросы для самопроверки
4.2. Выбор краевых условий
Наиболее употребительны следующие типы краевых условий:
а) ;
б) ;
в) ;
г) ;
д) .
Через краевые условия в конструкцию сплайна включаются параметры, выбирая которые можно управлять его поведением, особенно возле концов отрезка [a,b].
Если известны f'(x). f"(x) или f(x) в точках а и b, то естественно воспользоваться краевыми условиями типа а), б) или в).
Если производные неизвестны, то в большинстве случаев наилучшим решением будет применение краевых условий типа г).
Условия типа д) носят названия периодических. Естественно требовать их выполнения в том случае, когда интерполируемая функция периодическая с периодом (b-a).
Вместо значений производных можно использовать их разностные аналоги. При этом точность интерполяции вблизи концов отрезка [a,b] падает.
4.3. Погрешность аппроксимации кубическим сплайном
Теорема. Если функция f(x) при x[x0, xn] j раз непрерывно дифференцируема и k=min{j, 4}, то для mk-1
, (2.4.3)
причем cm не зависит от hi и i.
Примечание 1. Допустим, вторая производная f(x) непрерывна, а третья и четвертая – кусочно-непрерывны и могут иметь разрывы только первого рода в узлах сетки xi. Тогда оценка (2.4.3) остается в силе, если вместо символа max использовать sup. Дело в том, что рассматриваемый способ построения сплайна позволяет точно строить как любой многочлен третьей степени на всем интервале [x0,xn] (при этом обеспечивается непрерывность третьей производной), так и любую заданную функцию, составленную из многочленов третьей степени, если эта функция имеет непрерывную вторую производную.
Примечание 2. Если производная f''(x) имеет разрывы 1-го рода или граничные значения второй производной заданы с ошибкой, то оценка (2.4.3) остается справедливой при k=2, m1.
4.4. Алгоритм построения интерполяционного кубического сплайна
Пусть каждому значению аргумента xi, i=0,...,n соответствуют значения функции f(xi)=yi и требуется найти функциональную зависимость в виде сплайна (2.4.1), удовлетворяющего перечисленным ниже требованиям:
1) функция S3(x) непрерывна на отрезке [a,b] вместе со своими производными до второго порядка включительно;
2) S3(xi)=yi, i=0,1,...,n;
3) функция S3(x) удовлетворяет одному из вариантов краевых условий а-в (условия а,б,в могут задаваться смешанно, т.е. на одном конце первая производная, на другом - вторая).
Сформулированная задача имеет единственное решение.
Для понижения порядка системы уравнений, которую приходится решать для определения коэффициентов сплайна, кубические многочлены записываются в специальном виде, что позволяет использовать большую часть условий при построении.
Вторая производная S"3(x) непрерывна и на каждом отрезке [xi-1, xi], (i=1,...,n), выражается линейной функцией, поэтому представим ее в виде интерполяционного многочлена Лагранжа 1-й степени
, (2.4.4)
где hi = xi-xi-1, mi= S"3(xi).
Проинтегрируем обе части равенства (2.4.4)
, (2.4.5)
где . В силу непрерывности
.
Отсюда
, i=1,...,n (2.4.6)
Проинтегрируем (2.4.5)
,
(2.4.7)
где . В силу непрерывности
,.
Тем самым, получаем систему уравнений
, i=1,...,n. (2.4.8)
Последовательно вычитая последующее уравнение из предыдущего, получим
,
или с учетом (2.4.6)
, i=1,...,n-1. (2.4.9)
Если известны m0=f"(a) и mn= f"(b), то mi, i=1,...,n-1 определяются из решения системы линейных алгебраических уравнений (2.4.9).
Пусть известны m0=f"(a) и pn=f(b). Тогда систему (2.4.9) необходимо дополнить. Согласно (2.4.8) n-е уравнение
. (2.4.10)
Если известны mn=f"(b) и p0=f(a), то подставляя полученное из (2.4.6) значение p1 в (2.4.8) при i=1 найдем
.
Тем самым получается уравнение с номером i=0, дополняющее систему (2.4.9)
. (2.4.11)
Если известны p0=f(a) и pn=f(b), то к системе (2.4.9) добавляются оба уравнения (2.4.10) и (2.4.11). В случае задания краевых условий вида в) к системе (2.4.9) вместо (2.4.10) и (2.4.11) добавляются уравнения, полученные дифференцированием (2.4.4)
, (2.4.12)
Система линейных алгебраических уравнений (2.4.9)-(2.4.12) имеет трехдиагональную матрицу с диагональным преобладанием. Такие матрицы являются неособенными. Поэтому неизвестные m0, m2,..., mn находятся однозначно.
В результате решения системы уравнений определяются параметры mi, i=0,…,n. Тогда выразив pi из (2.4.8) и подставив в (2.4.7), получим
(2.4.13)
По этой формуле вычисляются значения функции S3(x).
Решение системы линейных алгебраических уравнений может быть найдено итерационными и прямыми методами решения, в том числе методом прогонки. Для решения задачи этим методом требуется выполнить примерно 3n сложений, 3n умножений, 2n делений.