Текст подпрограммы и версий ( Фортран )
id23r.zip
Тексты тестовых примеров ( Фортран )
tid23r.zip
Текст подпрограммы и версий ( Си )
id23r_c.zip
Тексты тестовых примеров ( Си )
tid23r_c.zip
Текст подпрограммы и версий ( Паскаль )
id23r_p.zip
Тексты тестовых примеров ( Паскаль )
tid23r_p.zip

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

Назначение

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

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

Пусть функция                                       
                 n
     f(x)  =  ∑  ai Ni k(x) ,
                i=1 

где  ai - заданные коэффициенты, а Nk (x) - нормированные  B - сплайны  K - го порядка, построенные по сети узлов

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

B заданной точке  x ∈ [t1, tn + 1] для некоторого целого числа ND:  0 ≤ ND ≤ K , вычисляются производные функции  f :  sj = D j - 1 f (x),  j = 1, 2,..., ND.

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

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

    SUBROUTINE  ID23R (T, A, N, K, X, S, ND, R, R1) 

Параметры

T - вещественный вектоp длины N + K, узлов сплайна T (1) ≤ T (2) ≤ ...≤ T (K) < T (K + 1) < ...< T (N) < T (N + 1) ≤ ...≤ T (N + K);
A - вещественный двумерный массив размера N*ND,  aI = A (I, 1),  I = 1, 2,..., N,  используемый также как рабочий (тип: вещественный);
N - заданное число  В - сплайнов, N ≥ 2*K (тип: целый);
K - порядок  В - сплайна (тип: целый);
X - заданное значение точки, в которой вычисляются производные функции, T (1) ≤ X ≤ T (N + 1) (тип: вещественный);
S - вещественный вектоp длины ND,  sJ = S (J),  J = 1,  2,..., ND;
ND - заданное целое число,  0 ≤ ND ≤ K;
R - рабочий вектоp длины K (тип: вещественный);
R1 - вещественный двумерный рабочий массив размера 2K.

Версии: нет

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

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

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

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

       REAL  T(9), A(6, 3), S(3), R(3), R1(2, 3)
       DATA  T /3*0., 2., 4., 6., 3*8./
       DATA  A(1, 1), A(2, 1), A(3, 1), A(4, 1), A(5, 1), A(6, 1)/0., -2.,
      *                18., 110., 322., 512./
       N = 6
       K = 3
       ND = 3
       X = 5.
       CALL  ID23R (T, A, N, K, X, S, ND, R, R1)

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