Текст подпрограммы и версий ( Фортран )
id22r.zip
Тексты тестовых примеров ( Фортран )
tid22r.zip
Текст подпрограммы и версий ( Си )
id22r_c.zip
Тексты тестовых примеров ( Си )
tid22r_c.zip
Текст подпрограммы и версий ( Паскаль )
id22r_p.zip
Тексты тестовых примеров ( Паскаль )
tid22r_p.zip

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

Назначение

Вычисление значения некоторой производной функции, линейно представленной через В - сплайн  k - го порядка, в заданной точке.

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

Пусть функция
                 n
     f(x)  =  ∑  aj Nj k(x) ,
                j=1 

где aj - заданные коэффициенты, а Nj k (x) - нормированные B - сплайны  k - го порядка, соответствующие сетке узлов

   t1 ≤ t2 ≤ ... ≤ tk < tk+1 <...< tn < tn+1 ≤ tn+2 ≤ ... ≤ tn+k . 

Вычисляется значение i - ой производной функции  f в заданной точке  x  [t1, tn + 1]  для некоторого  i:  0 ≤ i ≤ k .

C.de Boor, Package for Calculating with B - splines, SIAM J. Numerical Analysis, 14(3), 1977, pp. 441-772.

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

    REAL  FUNCTION  ID22R (T, A, N, K, X, ID, R) 

Параметры

T - вещественный вектоp длины N + K, значений узлов сплайна  T (1) ≤ T (2) ≤ ...≤ T (K) < T (K + 1) <  ...< T (N) < T (N + 1) ≤ ...≤ T (N + K);
A - вещественный вектоp длины N заданных значений коэффициентов  aj = A (J),  J = 1, 2,..., N;
N - заданное число В - сплайнов, N ≥ 2*K (тип: целый);
K - порядок  В - сплайна (тип: целый);
X - заданное значение точки, в которой вычисляется производная  f ( i ) (x), порядка  i = ID;  T (1) ≤ X ≤ T (N + 1) (тип: вещественный);
ID - заданный порядок вычисляемой производной 0 ≤ ID ≤ K (тип: целый);
R - вещественный рабочий двумерный массив размерности 3K.

Версии: нет

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

I I21R2 - служебная подпрограмма.

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

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

       REAL  T(9), A(6), R(3, 3)
       DATA  T /3*0., 2., 4., 6., 3*8./
       DATA  A /0., -2., 18., 110., 322., 512./
       N = 6
       X = 5.
       K = 3
       DO 5  ID = 1, 3
       S = ID22R (T, A, N, K, X, ID, R)
    5 CONTINUE

Результаты:    S  =  76., 30., 0.