1.1.8. Программная реализация
Описанный выше алгоритм построения интерполяционного кубического сплайна и вычисления его значений в произвольной точке реализован в виде подпрограммы Spline, написанной на языке Фортран:
(см. скан)
Обращение к программе имеет вид:
(см. скан)
Программа Spline обращается к подпрограмме решения системы линейных уравнений с трехдиагональной матрицей Progon3 (см. приложение А).
Перед обращением к программе Spline необходимо:
1) задать размерности массивов
не забывая, что размерности массивов
на единицу больше размерностей массивов
2) присвоить фактические значения элементам массивов х и у и переменным
при первом обращении к программе,
при повторных обращениях).
Пример. Построим на отрезке
равномерную сетку из 21 узла и вычислим значения функции
в этих узлах. По этим данным построим интерполяционный кубический сплайн, удовлетворяющий граничным условиям 1-го типа, и сравним значения заданной функции и ее двух первых производных со значениями построенного сплайна и двух его первых производных в точках
Программа для решения этой задачи может иметь следующий
(см. скан)
Вычисления по этой программе привели к следующим результатам:
Максимум вычислялся на множестве точек
Эти результаты показывают, что интерполяционный кубический сплайн действительно обладает хорошими аппроксимационными свойствами.
Следующая программа строит интерполяционный сплайн, удовлетворяющий граничным условиям 2-го типа,
(см. скан)
(см. скан)
Вычисления по этой программе привели к следующим результатам:
Максимум вычислялся на множестве точек
из предыдущего примера.
Если требуется по тому же массиву данных построить интерполяционный сплайн, удовлетворяющий граничным условиям 3-го типа, то можно воспользоваться программой, текст которой приведен ниже.
(см. скан)
(см. скан)
Вычисления по этой программе привели к следующим результатам:
Максимум вычислялся на множестве точек
из предыдущего примера.
Следующая программа строит и тестирует интерполяционный сплайн, удовлетворяющий граничным условиям 4-го типа.
(см. скан)
(см. скан)
Вычисления по этой программе привели к следующим результатам:
Максимум вычислялся на множестве точек
из основного примера.
Текст профаммы Spline находится в файле spline.for в поддиректории INTERPOL на дискете, которую можно приобрести в издательстве "Диалог-МИФИ". В эту же поддиректорию помещены файлы, содержащие примеры применения программы Spline при других граничных условиях. Подробную информацию об именах этих файлов и их содержании можно найти в файле readme.txt из директории SPLINES этой дискеты и в приложении В нашей книги.