Главная > Разное > Кривые и поверхности на экране компьютера
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

1.2.7. Программная реализация

Описанный выше алгоритм построения сглаживающего кубического сплайна и вычисления его значений в произвольной точке реализован в виде подпрограммы mspline, написанной на языке Фортран:

(см. скан)

(см. скан)

(см. скан)

(см. скан)

Обращение к программе имеет вид:

Входные данные:

число точек в массиве исходных данных;

массив размерности содержащий х-координаты заданных точек;

у - массив размерности содержащий у-координаты заданных точек;

массив размерности содержащий значения весовых коэффициентов;

код режима, работы:

программа вычисляет параметры сплайна, параметры сплайна известны, и программа вычисляет значения сплайна и первых двух его производных в точке

- значения параметров, входящих в граничные условия 1-го типа;

точка, в которой вычисляются значения сплайна и его производных;

указатель типа граничных условий: граничные условия типа.

Результат;

массив размерности содержит значения сглаживающего сплайна в точке - массив размерности содержит значения 2-й производной сглаживающего сплайна в точке значение сплайна в точке значение 1-й производной сплайна в точке значение 2-й производной сплайнав точке

Вспомогательные переменные:

рабочие массивы размерности рабочие массивы размерности

Программа обращается к подпрограмме решения системы линейных уравнений с -диагональной матрицей (см. приложение А).

Чтобы показать, как пользоваться программой рассмотрим следующий пример, имитирующий сглаживание экспериментальных данных.

Пусть в файле содержатся результаты 21 "измерения" функции в узлах сетки

где погрешность измерения представляет собой случайную величину, равномерно распределенную на отрезке [0.2, 0.2].

По результатам "измерений" построим сглаживающий сплайн, удовлетворяющий граничным условиям 1-го типа и протабулируем в 101-й точке с координатами

В качестве весовых коэффициентов возьмем величины

Программа для решения этой задачи может иметь следующий

(см. скан)

(см. скан)

Результаты вычислений, проведенных по этой программе, приведены на рис. 1.15. На этом рисунке точками отмечены исходные данные и представлены: график сглаживающего сплайна, график интерполяционного сплайна, удовлетворяющего тем же граничным условиям, и график синусоиды.

На рисунке видно, что осцилляции, ярко выраженные на графике интерполяционного сплайна, практически полностью отсутствуют на графике сглаживающего сплайна. Графики первых производных обоих сплайнов представлены на рис. 1.16. Разница в поведении вторых производных еще более значительна.

Если требуется построить сглаживающий сплайн, удовлетворяющий граничным условиям 2-го типа, то следует воспользоваться программой, текст которой приведен ниже.

(см. скан)

(см. скан)

Здесь подразумевается, что исходные данные для этого примера находятся в файле

Следующая программа предназначена для построения сглаживающего сплайна, удовлетворяющего граничным условиям 3-го типа.

(см. скан)

Исходные данные для этого примера находятся в фариге

Текст программы находится в файле в поддиректории на дискете, которую можно приобрести в издательстве "Диалог-МИФИ". В эту же поддиректорию помещены файлы, содержащие примеры применения программы при других граничных условиях. Подробную информацию об именах этих файлов и их содержании можно найти в файле из директории SPLINES этой дискеты и в приложении В нашей книги.

<< Предыдущий параграф Следующий параграф >>
Оглавление