Текст подпрограммы и версий ( Фортран )
ids5r.zip
Тексты тестовых примеров ( Фортран )
tids5r.zip
Текст подпрограммы и версий ( Си )
ids5r_c.zip
Тексты тестовых примеров ( Си )
tids5r_c.zip
Текст подпрограммы и версий ( Паскаль )
ids5r_p.zip
Тексты тестовых примеров ( Паскаль )
tids5r_p.zip

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

Назначение

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

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

Пусть в узлах сетки  xk :  x1 < x2 <  ...< xN заданы значения  yk = y (xk). Интерполирующая функция  y (x) является периодической на отрезке  [x1, xN] и на каждом из отрезков  [xk, xk + 1] представляется кубическим полиномом Эрмита [1], построенным по значениям  yi, y''i и  yi + 1 , y''i + 1 , где  y''i = y'' (xi) определяются из условия непрерывности первой производной функции  y (x) в узловых точках [2]. Это обеспечивает гладкость второго порядка  y (x) на всем отрезке [x1, xN].

1. 

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

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

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

    SUBROUTINE  IDS5R (N, X, Y, Y2, F, G, H) 

Параметры

N - число узлов сетки, N ≥ 3 (тип: целый);
X - одномерный массив размерности N значений узлов сетки (тип: вещественный);
Y - одномерный массив размерности N значений табличной функции (тип: вещественный);
Y2 - одномерный массив размерности N вычисляемых значений вторых производных в узлах сетки (тип: вещественный);
F, G, H - одномерные рабочие массивы размерности N (тип: вещественный).

Версии: нет

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

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

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

На сетке  xk = (k-1)*2π/5  брались значения  yk = cos (xk) ,   k  =  1,  ..., 6 .

       DIMENSION  X(6), Y(6), Y2(6), F(6), G(6), H(6)
       PI = 2*3.141592653/5.
       N = 6
       DO 1  K = 1, 6
       X(K) = (K - 1)*PI
       Y(K) = COS( X(K) )
    1 CONTINUE
       CALL  IDS5R (N, X, Y, Y2, F, G, H)

Результат:    ( -1.2,  -0.34,  0.93,  0.85,  -0.10,  -1.20 )