|
Текст подпрограммы и версий ( Фортран ) id23r.zip |
Тексты тестовых примеров ( Фортран ) tid23r.zip |
|
Текст подпрограммы и версий ( Си ) id23r_c.zip |
Тексты тестовых примеров ( Си ) tid23r_c.zip |
|
Текст подпрограммы и версий ( Паскаль ) id23r_p.zip |
Тексты тестовых примеров ( Паскаль ) tid23r_p.zip |
Вычисление значений производных до некоторого порядка функции, линейно представленной через В - сплайн K - го порядка, в заданной точке.
Пусть функция
n
f(x) = ∑ ai Ni k(x) ,
i=1
где ai - заданные коэффициенты, а Ni k (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.