Текст подпрограммы и версий ( Фортран ) iis1r.zip |
Тексты тестовых примеров ( Фортран ) tiis1r.zip |
Текст подпрограммы и версий ( Си ) iis1r_c.zip |
Тексты тестовых примеров ( Си ) tiis1r_c.zip |
Текст подпрограммы и версий ( Паскаль ) iis1r_p.zip |
Тексты тестовых примеров ( Паскаль ) tiis1r_p.zip |
Интерполирование параметрически заданной циклической функции по известным на неравномерной сетке значениям самой функции и ее вторых производных методом интерполирующих кубических сплайнов.
Пусть в узлах неравномерной ceтки t1 < t2 ... < tN известны значения параметрически заданной циклической функции x = x(t) и y = y(t) и ее вторых производных x'' = x''(t) и y'' = y''(t). Требуется найти значение этой функции в некоторой точке t0: t1 < t0 ≤ tN. Эта задача интерполяции решается в I IS1R посредством построения кубических полиномов по значениям ( ti, xi ) , ( ti, x''i ) , ( ti + 1, xi + 1 ) , ( ti + 1, x''i + 1 ) и ( ti, yi ) , ( ti, y''i ) , ( ti + 1, yi + 1 ) , ( ti + 1, y''i + 1 ) как интерполяционных полиномов Эрмита [1], [2].
1. |
И.С.Березин, Н.П.Жидков, Методы вычислений, т.1, Физматгиз, 1962. |
2. | Дж.Алберг, Э.Нильсон, Дж.Уолш, Теория сплайнов и ее приближения, M., "Мир", 1972. |
SUBROUTINE I IS1R (TO, N, T, X, Y, X2, Y2, XO, YO, IERR)
Параметры
TO - | значение t0, в котоpом ищется параметрически заданная циклическая функция (тип: вещественный); |
N - | заданное число узлов сетки, N ≥ 3 (тип: целый); |
T - | вещественный одномерный массив значений ti размерности N; |
X - | вещественный одномерный массив значений xi размерности N; |
X2 - | вещественный одномерный массив вторых производных x''i размерности N; |
Y - | вещественный одномерный массив значений yi размерности N; |
Y2 - | вещественный одномерный массив вторых производных y''i размерности N; |
XO - | вещественная переменная, содержащая вычисленное значение x (t0); |
YO - | вещественная переменная, содержащая вычисленное значение  y (t0); |
IERR - | целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом: |
IERR=65 - | когда заданное значение TO не принадлежит полуинтервалу (t1, tN]. |
Версии: нет
Вызываемые подпрограммы
UTI I10 - | подпрограмма выдачи диагностических сообщений при работе подпрограммы I IS1R. |
Замечания по использованию: нет
На единичной окружности были взяты 17 точек. Значения векторов T, X, Y, X2 и Y2 определены в примере использования подпрограммы IDS6R.
TO = 1. N = 17 CALL IIS1R (TO, N, T, X, Y, X2, Y2, XO, YO, IERR) Результаты: XO = - 0.526 , YO = - 0.8505 , IERR = 0