Текст подпрограммы и версий
ids4r.zip
Тексты тестовых примеров
tids4r.zip
Текст подпрограммы и версий ( Си )
ids4r_c.zip
Тексты тестовых примеров ( Си )
tids4r_c.zip
Текст подпрограммы и версий ( Паскаль )
ids4r_p.zip
Тексты тестовых примеров ( Паскаль )
tids4r_p.zip

Подпрограмма:  IDS4R

Назначение

Вычисление значений вторых производных вещественной табличной параметрической функции в узлах неравномерной сетки методом интерполирующих кубических сплайнов.

Математическое описание

Пусть заданы пары значений (xi, yi). Считается, что  xi = x (ti),  yi = y (ti) ,  i = 1, 2, ... N, а величины ti = ti - 1 + di,  i =  2, 3, ... N,  t1 = 0. Шаги по параметру  di могут определятся из следующих формул:

     а)  di  =  [ (Δxi)2  +  (Δyi)2 ]1/2

     б)  di  =  ( Δxi )2  +  ( Δyi )2

     в)  di  =  | Δxi |  +  | Δyi | ,   i = 2, ..., N-1 , 

где  Δ xi = xi + 1 - xi ,  Δ yi = yi + 1 - yi .

Далее по парам значений (ti, xi),  (ti, yi) ,  i = 1, ..., N и известным значениям вторых производных в концевых точках  x''1,  x''N и  y''1,  y''N методом кубических сплайнов [1] вычисляются значения вторых производных  x''i и  y''i,   i = 2, ...,N - 1.

Интерполирующие функции  x = x (t) и  y = y (t) на каждом из отрезков [ti, ti + 1] представляют из себя кубические полиномы, построенные по значениям (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) как интерполяционные полиномы Эрмита [2]. Tак построенные функции  x (t) и  y (t) являются дважды непрерывно дифференцируемыми на всем отрезке [t1, tN] по параметру  t.

1. 

Дж.Алберг, Э.Нильсон, Дж.Уолш, Теория сплайнов и ее приложения. M., "Мир", 1972.

2.  И.С.Березин, Н.П.Жидков, Методы вычислений, т.1, Физматгиз, 1962.

Использование

    SUBROUTINE  IDS4R (N, NPAR, T, X, X2, Y, Y2, F, G) 

Параметры

N - число узлов сетки, N ≥ 3 (тип: целый);
NPAR - одно из целых чисел 1, 2, 3, характеризующих способ параметризации; при NPAR = 1 величины  di вычисляются по формуле а), при NPAR = 2 - по формуле б), при NPAR = 3 - по формуле в);
T - одномерный массив значений  ti размерности N (тип: вещественный);
X - одномерный массив значений  xi размерности N (тип: вещественный);
X2 - одномерный вещественный массив вычисляемых значений вторых производных функции  x (t) в узлах сетки  ti; на входе  X2 (1) = x''1,  X2 (N) = x''N; длина масива X2 pавна N;
Y - одномерный массив значений  yi размерности N (тип: вещественный);
Y2 - одномерный вещественный массив вычисляемых значений вторых производных функции  y (t) в узлах сетки  ti; на входе Y2 (1) = y''1,  Y2 (N) = y''N; длина массива Y2 pавна N;
F, G - одномерные рабочие массивы размерности N (тип: вещественный).

Версии: нет

Вызываемые подпрограммы

IDS0R - вычисление значений вторых производных вещественной табличной функции от одного переменного в узлах неравномерной сетки методом интерполирующих кубических сплайнов при известных значениях вторых производных в концевых точках.

Замечания по использованию: нет

Пример использования

На верхней части единичной полуокружности были взяты десять равноотстоящих точек. Вычислялись значения вторых производных  x''i и  y''i ,  i = 2, ..., 9 .

       DIMENSION  T(10), X(10), X2(10), Y(10), Y2(10), F(10), G(10)
       DO 5  I = 1, 10
       X(I) = -1. + (I - 1)*(2./9.)
    5 Y(I) = 1. - X(I)*X(I)
       X2(1) = -1.
       X2(10) = 1.
       Y2(1) = 0.
       Y2(10) = 0.
       CALL  IDS4R (10, 1, T, X, X2, Y, Y2, F, G)

Результат:

       X2  =  ( 1.00,   0.83,   0.55,   0.34,   0.11,  -0.11,  -0.34, 
                    -0.55,  -0.83,  -1.00 )
       Y2  =  ( 0.00,  -0.70,  -0.83,  -0.96,  -1.00,  -1.00,  -0.96, 
                    -0.83,  -0.70,   0.00 )