Текст подпрограммы и версий ( Фортран ) ii21r.zip |
Тексты тестовых примеров ( Фортран ) tii21r.zip |
Текст подпрограммы и версий ( Си ) ii21r_c.zip |
Тексты тестовых примеров ( Си ) tii21r_c.zip |
Текст подпрограммы и версий ( Паскаль ) ii21r_p.zip |
Тексты тестовых примеров ( Паскаль ) tii21r_p.zip |
Построение интерполирующего сплайна К - го порядка с произвольными узлами интерполяции.
Пусть задана сетка узлов (узлы сплайна):
t1 ≤ t2 ≤ ... ≤ tk < tk + 1 < ... < tn < tn + 1 ≤ tn + 2 ≤ ... ≤ tn + k ,
определяющая для i = 1, 2, ..., n нормированные В - сплайны Ni k (x) порядка k, соответствующие узлам
ti , ti + 1 , ... , ti + k .
Строится сплайн - функция
n f (x) = ∑ a i Ni k (x) , t1 ≤ x ≤ tn + 1 , i = 1
коэффициенты ai, i = 1, 2, ..., n, которой определяются условиями интерполяции
n ∑ a i Ni k ( z j ) = bj , j = 1, 2, ... , n , i = 1
где Z1 < Z2 < ... < Zn узлы интерполяции, такие что [Z1, Zn] ⊆ [ t1, tn + 1 ] , а bj - заданные значения.
C.de Boor, Package for Calculating with B - splines, SIAM J. Numerical Analysis, 14 (3), 1977, pp. 441 - 472.
SUBROUTINE I I21R (N, K, T, Z, A, B, R, R1, R2, IERR)
Параметры
N - | заданное число узлов интерполяции (тип: целый); |
K - | заданный порядок В - сплайна (тип: целый); |
T - |
вещественный вектоp длины N + K значений
узлов сплайна: T (1) ≤ T (2) ≤ ... ≤ T (K) < T (K + 1) < T (K + 2) < T (N) < T (N + 1) ≤ T (N + 2) ≤ ... ≤ T (N + K); |
Z - | вещественный вектоp длины N значений узлов интерполяции: T (1) ≤ Z (1) < Z (2) < ... < Z (N) ≤ T (N + K); |
A - | вещественный вектоp длины N: aI = A (I), I = 1, 2, ..., N; |
B - | вещественный вектоp длины N: bI = B (I), I = 1, 2, ..., N; |
R - | вещественный двумерный рабочий массив размера N * (2*K - 1); |
R1 - | вещественный рабочий вектоp длины K; |
R2 - | вещественный двумерный рабочий массив размера N*K; |
IERR - | целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом: |
IERR=65 - | когда какой - то узел Z (I) не принадлежит [T (1), T (N + 1)]; |
IERR=66 - | когда матрица для определения коэффициентов вырождена. |
Версии: нет
Вызываемые подпрограммы
UTI I10 - | подпрограмма выдачи диагностических сообщений при работе подпрограммы I I21R. |
ASB1R - | подпрограмма решения системы с ленточной матрицей, заданной в компактной форме, с выбором ведущего элемента по столбцу. |
I I21R1 - | служебная подпрограмма. |
I I21R2 - | служебная подпрограмма. |
Замечания по использованию: нет
REAL T(9), Z(6), A(6), B(6), R(6, 5), R1(3), R2(6, 3) DATA T /3*0., 2., 4., 6., 3*8./ DATA Z /1., 3., 4., 5., 6., 7./ N = 6 K = 3 DO 5 I = 1, N ZX = Z(I) B(I) = ZX * ZX * ZX 5 CONTINUE CALL II21R (N, K, T, Z, A, B, R, R1, R2, IERR) Результаты: IERR = 0 , A = 0., -2., 18., 110., 322., 512.