УДК 378.147
Методика проведения лабораторной работы по теме «Интерполирование кубическими сплайнами» в курсе численных методов
© А. А. Федотов, П.В. Храпов МГТУ им. Н.Э. Баумана, Москва, 105005, Россия
В статье на примере лабораторной работы «Интерполирование функций кубическими сплайнами» предлагается методика проведения лабораторной работы по курсу « Численные методы», основанная на методических расчетах на сгущающихся сетках с целью решения задачи с заданной точностью. Дана постановка задачи, определение сплайна, вывод трехдиагональной системы линейных алгебраических уравнений (которую можно решить методом прогонки) для нахождения коэффициентов кубического сплайна. Подробно рассмотрен случай равномерной сетки. Объяснена необходимость использования тех или иных граничных условий, например условия равенства нулю второй производной сплайна для получения замкнутой системы уравнений. Дано обоснование сходимости процесса интерполирования кубическими сплайнами и проведена оценка погрешности. Описана методика выполнения лабораторной работы, алгоритм методических расчетов, способ выбора шага сгущения сетки. Приведен пример приближения функции интерполяционным кубическим сплайном. Показано, что для успешного освоения студентами численных методов необходимо проводить лабораторные работы по методикам, позволяющим с помощью тестовых методических расчетов контролировать точность результатов и находить численные решения рассматриваемых в работе задач с заданной точностью.
Ключевые слова: численные методы, методические расчеты, точность расчетов, интерполирование, сплайны
Введение. Основными целями лабораторной работы по численным методам являются освоение изучаемого в работе численного метода и нахождение численного решения рассматриваемой задачи с требуемой точностью.
В данной работе на примере лабораторной работы «Интерполирование функций кубическими сплайнами» предлагается методика проведения лабораторной работы по курсу «Численные методы», основанная на методических расчетах на сгущающихся сетках с целью решения задачи с заданной точностью.
Постановка задачи. Пусть на отрезке [а, Ь] определена некоторая функция / (х), однако полная информация о ней отсутствует. Известны только ее значения в узловых точках сетки шй., введенной на [а, Ь]:
={а = хо < х1 < .. < Х- < X+1...хп = (1)
где хг, г = 0, 1,..., п и к1 = х1 -х1 _1? г = 1, 2,..., п — узловые точки и шаги сетки соответственно.
Требуется по известным значениям /г = /(х1), г = 0,1,..., п построить на отрезке [а, Ь] функцию 5(х), достаточно близкую к /(х). Функцию /(х) принято называть интерполируемой, 5(х) — интерполирующей функцией, а точки хг — узлами интерполяции.
Поставленную в общей форме задачу о приближении функций будем решать с помощью интерполяционного кубического сплайна [1-4].
Построение интерполяционного кубического сплайна. Назовем отрезок [хг-1, хг], г = 1, 2,..., п, г-м частичным отрезком.
Интерполяционным кубическим сплайном для функции /(х) называется функция я (х), удовлетворяющая следующим условиям:
1) на каждом частичном отрезке [хг-1, хг], г = 1, 2,..., п функция я (х) является многочленом третьей степени;
2) я (х), я'( х) и я" (х) являются непрерывными функциями на отрезке [а, Ь];
3) выполнены условия интерполирования: я(хг) = /1, г = 0,1,..., п (рисунок).
Интерполирование функции / (х)
На каждом из частичных отрезков [хг-1, хг ] сплайн будем искать в виде
я1 (х) = аг + Ь{ (х - хг-1) + С (х - хг-1 )2 + йг (х - хг-1 )3, (2)
х е [хг-1, хг], г = 1, 2,..., п.
Из условия непрерывности в узлах сплайна, его первых и вторых производных получаем
Я (Хг ) = Si+l(xi X г = ^ п - 1; (3)
я-(х-) = я'+1(Хг), г = 1,2,..., п -1; (4)
<(Хг) = ^(Хг), - = 1,2,..., П - 1. (5)
Кроме условий (3)-(5), которые должны выполняться во внутренних узловых точках сетки (1), на концах отрезка [а, Ь] также должны выполняться дополнительные условия [3, 4]:
<( х о) = 0, < (Хп) = 0. (6)
Из (2) (см. рисунок) имеем я(хм) = а1 = /-Ь г = 1,2,..., п, и
Я+1(Хг ) = аг +1 = /г, - = 0 1, п - 1.
Отсюда и из (3) получаем
и, + ьа + еМ + йА = , г = 1,2,..., п. (7)
Найдем первую и вторую производные функции (2):
Я'г (X) = Ь + 2Сг (X - Хг-! ) + 3^ (X - Хгч)2,
я"(х) = 2е, + 6йг(х - х--1), Х е [Хг-!, Хг ], г = 1,2,..., п.
Отсюда и из условий (4) и (5) следует
Ь + 2егИг + 3йА = Ьг+1, г = 1,2,..., п -1, (8)
2Сг + 6йгИг = 2ем, г = 1,2,..., п -1. (9)
Дополнительные условия (6) приводят к соотношениям
е1 = 0, 2е„ + 6йпИп = 0. (10)
Формальное введение еще одного неизвестного еп+1, которое при этом будем считать равным нулю, позволяет из (9) и второго равенства (10) получить выражения для определения коэффициентов сплайна
= , г = 1,.., п. (11)
3Иг
Из (7) следует
Ьг = -еА -йМ, г = 1,..., п.
Аг
После подстановки в последнее выражение получаем
Ь = -hr(2c1 + ci+1), i = 1,..., л. (12)
h 3
Подставим (12) в (8):
/i - h (2c. + ci+i) + 2ch + 3d,h,2 =
h 3
(2Ci+1 + Ci+2X . = П - 1.
fi+1 fi hi+1
hi+1 3
Используя (11), находим
fi fi-1-h (2c. + c.+1) + 2cihi + 3(ci+ ^^^h
h 3 3h.
(2Ci+1 + Ci+2), . = n-1.
./i+1 ,/i hi+1
После преобразований получим систему линейных алгебраических уравнений с трехдиагональной матрицей относительно коэффициентов с1, которую можно решить методом прогонки [1-3]:
hiCi + 2(hi + hi+1)ci+1 + hi+1Ci+2 = 3
/ - / / - /
J i +1 У i _ J i J i-1
v hi+1 hi У
i = 1, 2,..., n -1;
C1 = 0, Cn+1 = 0.
(13)
Замечание. Из условий интерполирования и гладкости сплайна (3)—(5) получаются (4n -2) уравнения для определения 4n коэффициентов ai, bt, Ci, dt, i = 1,..., n (см. (2)). Для получения замкнутой системы уравнений используются те или иные граничные условия, например условия равенства нулю второй производной сплайна s( x) (6) (см., например, [3-6]).
Случай равномерной сетки. Если узлы равноотстоящие, то hi = h = const, h = (b - a)/n и система (13) упрощается:
Cl + 4Ci+1 + c,+2 = 3| 1-2/- + /i+1 |, i = 1,2,..., n-1; < i+1 i+2 ^ h2 у ' ' ' ' (14)
C1 = 0, Cn+1 = 0.
Остальные коэффициенты находятся по формулам
a, = f, -l,
b = - ^(2c, + Ci+1), (15)
h 3
= г = 1,2 п.
г 3И
Приближение функций с помощью интерполяционного кубического сплайна является сходящимся процессом: при неограниченном увеличении числа узлов сетки соответствующая последовательность сплайн-функций сходится к интерполируемой функции. Сформулируем соответствующую теорему для случая равномерной сетки.
Пусть (х) — интерполяционный кубический сплайн, построенный для функции /(х) на отрезке [а, Ь] с равноотстоящими узлами, т. е. (а + гИ) = /(а + гИ), И = (Ь - а)/п, г = 0,1,..., п. Необходимо, чтобы на отрезке [а, Ь] функция /(х) имела непрерывные производные до четвертого порядка включительно: /(х) е С(4)[а,Ь]. Тогда имеет место следующая теорема [1].
Теорема. Для функции /(х) е С(4)[а, Ь] справедливы оценки
II/(Х) - ЯИ (Х)||С[а,Ь] < М4И4, \\/"(х) - ЯИ (Х)||С[а,Ь] < М4И3,
II/' ( Х ) - ( Х )|| с [а ь < М4И 2, М4 = || / (4)( Х )|| с [ ^ где Ц^(х)|| = тах |g(х)| — норма, введенная в линейном про-
II IIе [ а,Ь] [ а, ь]
странстве непрерывных функций на отрезке [а, Ь], g(х) е С[а, Ь].
Из этих оценок следует, что при И ^ 0 (т. е. при п ^ж) последовательности (х), (х), я"и (х) сходятся соответственно к функциям /(х), /"(х), /"(х).
Методика проведения лабораторной работы. Для восстановления функции / (х) с заданной точностью необходимо путем методических расчетов подобрать шаг сетки.
Алгоритм методических расчетов состоит в следующем. Для оценки качества восстановления функции / (х) с помощью сплайна необходимо взять известную функцию, построить таблицу значений / = /(а + И) этой функции, заданной на отрезке [а, Ь], с шагом И = (Ь - а)/п и построить интерполяционный сплайн. Для сравнения значений = /(а + гИ) и необходимо выбрать контрольные точки, в качестве которых можно взять середины частичных отрезков первоначального разбиения (например, п = 5 ). Узловые точки в качестве контрольных точек не могут быть использованы, поскольку по этим значениям строится сплайн.
Далее число разбиений увеличиваем на 5, строим сплайн и вычисляем значения сплайна в серединах новых частичных отрезков.
Среди 25 точек нового разбиения окажутся все контрольные точки, которые необходимо только отобрать, чтобы провести сравнение с предыдущим расчетом. Если сравнение оказалось неудовлетворительным, то сгущение сетки нужно продолжать, увеличив число разбиений отрезка еще на 5. При этом число точек текущего разбиения будет равно 125, среди которых вновь окажутся все точки первоначального разбиения, т. е. все контрольные точки. Сгущение сетки следует продолжать до тех пор, пока значения сплайна в контрольных точках не перестанут зависеть от числа разбиения отрезка [а, Ь] (например, с точностью до четырех значащих цифр после запятой). Результаты вычислений с последним числом разбиений необходимо взять в качестве результатов расчетов, которые необходимо сравнить с точными значениями функции /(х).
Замечание. В качестве шага сгущения сетки можно взять любое нечетное число: 3, 7, 9 и т. д.
В силу изложенного выше предлагается следующая последовательность выполнения лабораторной работы [7-9]:
1. Провести вычисления при п = 5, 25, 125 .
2. Построить таблицу значений = /(а + ¡к) функции /(х), заданной на отрезке [а, Ь] с шагом к = (Ь - а)/п .
3. По полученной таблице вычислить коэффициенты сплайна, используя метод прогонки.
4. Вычислить значения сплайна и заданной функции в серединах получившихся отрезков, т. е. в точках хы = а + (/' -0,5)к, 1 = 1, 2,..., п.
5. Оформить таблицу, столбцами которой являются:
а) координаты контрольных точек: хы = а + (/' - 0,5)к, к =
б) значения заданной функции в контрольных точках = / (хс1),
(Ь - а)/5; 1 = 1, 2, 3, 4, 5;
1 = 1, 2, 3, 4, 5;
в) значения сплайна в контрольных точках: при п = 5
, 1 = 1, 2, 3, 4, 5;
при п = 25
^=/-1+-2-
+ I
2 4 8
1 = 3 + 57, ] = 1, 2, 3, 4, 5;
при п = 125
ЬИ еИ2 йИИ . „„ . . „^„„^
Яг = /-1 + + + , г = 13 + 25], ] = 1,2,3,4,5.
2 4 8
6. Если результаты расчетов окажутся неудовлетворительными, то сгущение сетки следует продолжить: необходимо провести расчеты с числом разбиений п = 625 и вычислить значения сплайна , г = 63 +125], ] = 1, 2, 3, 4, 5.
В пунктах 5 и 6 значения индекса «г» означают номера частичных отрезков соответствующих разбиений, середины которых являются контрольными точками.
Пример. В качестве примера рассмотрим функцию /(х) = вх на отрезке [0; 2,5]. Результаты расчетов приведены в таблице. Расчеты показывают, что при п = 125 с точностью до пяти значащих цифр после запятой значения интерполяционного кубического сплайна совпадают со значениями функции / (х) = вх.
х х), п = 5 х), п = 25 х), п = 125 / (х)
0,25 1,29592 1,28406 1,28403 1,28403
0,75 2,11100 2,11700 2,11700 2,11700
1,25 3,50043 3,49034 3,49034 3,49034
1,75 5,71693 5,75460 5,75460 5,75460
2,25 9,62283 9,48813 9,48774 9,48774
Заключение. Лабораторные работы по численным методам являются неотъемлемой частью учебного процесса. Рассмотренный пример лабораторной работы показывает, что для эффективного использования такой формы обучения и успешного освоения студентами изучаемых методов необходимо проводить лабораторные работы по методикам, позволяющим с помощью тестовых методических расчетов контролировать точность результатов и находить численные решения рассматриваемых в работе задач с заданной точностью.
ЛИТЕРАТУРА
[1] Самарский А.А., Гулин А.В. Численные методы. Москва, Наука, 1989,
432 с.
[2] Амосов А.А., Дубинский Ю.А., Копченова Н.В. Вычислительные методы.
Москва, Издательский дом МЭИ, 2008, 672 с.
[3] Костомаров Д.П., Фаворский А.П. Вводные лекции по численным методам.
Москва, Университетская книга, Логос, 2006, 184 с.
[4] Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы. Москва,
Лаборатория Базовых Знаний, 2002, 632 с.
[5] Волков Е.А. Численные методы. Москва, Наука, 1987, 248 с.
[6] Самарский А. А., Вабищевич П.Н., Самарская Е.А. Задачи и упражнения по численным методам. Москва, Едиториал УРСС, 2003, 208 с.
[7] Блюмин А.Г., Гусев Е.В., Федотов А.А. Численные методы. Москва, Изд-во МГТУ им. Н.Э. Баумана, 2002, 48 с.
[8] Кокотушкин Г. А., Федотов А. А., Храпов П.В. Численные методы алгебры и приближения функций. Москва, Изд-во МГТУ им. Н.Э. Баумана, 2011, 58 с.
[9] Федотов А.А., Храпов П.В. Численные методы. Метод. указания к выполнению лабораторных работ по курсу « Численные методы». Москва, Изд-во МГТУ им. Н.Э. Баумана, 2012, 141 с. http://wwwcdl.bmstu.ru/fn1.
Статья поступила в редакцию 28.06.2013
Ссылку на эту статью просим оформлять следующим образом:
Федотов А. А., Храпов П.В. Методика проведения лабораторной работы по теме «Интерполирование кубическими сплайнами» в курсе численных методов. Инженерный журнал: наука и инновации, 2013, вып. 5. URL: http://engjournal.ru/ catalog/pedagogika/hidden/748.html
Федотов Анатолий Александрович родился в 1954 г., окончил МГУ им. М.В. Ломоносова в 1977 г. Канд. физ.-мат. наук, доцент кафедры «Высшая математика» МГТУ им. Н.Э. Баумана. Автор более 55 научных работ в области прикладной математики и механики. Сфера научных интересов: численные методы, уравнения математической физики.
Храпов Павел Васильевич родился в 1959 г., окончил МГУ им. М.В. Ломоносова в 1981 г. Канд. физ.-мат. наук, доцент кафедры «Высшая математика» МГТУ им. Н.Э. Баумана. Автор более 40 научных работ в области прикладной математики и механики. Сфера научных интересов: модели статистической физики и квантовой теории поля, численные методы, функциональный анализ, анализ временных рядов, распознавание образов, финансовая математика.