Текст подпрограммы и версий ( Фортран )
ids3r.zip
Тексты тестовых примеров ( Фортран )
tids3r.zip
Текст подпрограммы и версий ( Си )
ids3r_c.zip
Тексты тестовых примеров ( Си )
tids3r_c.zip
Текст подпрограммы и версий ( Паскаль )
ids3r_p.zip
Тексты тестовых примеров ( Паскаль )
tids3r_p.zip

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

Назначение

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

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

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

1.  И.С.Березин, Н.П.Жидков, Методы вычислений, т. 1, Физматгиз, 1962.
2.  Дж.Алберг, Э.Нильсон, Дж.Уолш, Теория сплайнов и ее приложения, M., "Мир", 1972.

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

    SUBROUTINE  IDS3R (N, X, Y, Y1, F, G) 

Параметры

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

Версии: нет

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

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

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

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

       DIMENSION  X(6), Y(6), Y1(6), F(6), G(6)
       PI = 3.141592653/5.
       N = 6
       DO 1  K = 1, N
       X(K) = (K-1)*PI
       Y(K) = COS(X(K))
    1 CONTINUE
       Y1(1) = 0.
       Y1(N) = -SIN(X(N))
       CALL  IDS3R (N, X, Y, Y1, F, G)

Результат:

       Y1  =  ( 0.00,  -0.59,  -0.95,  -0.95,  -0.59,  0.00 )