Текст подпрограммы и версий ( Фортран )
is03r.zip , is03d.zip
Тексты тестовых примеров ( Фортран )
tis03r.zip , tis03d.zip
Текст подпрограммы и версий ( Си )
is03r_c.zip , is03d_c.zip
Тексты тестовых примеров ( Си )
tis03r_c.zip , tis03d_c.zip
Текст подпрограммы и версий ( Паскаль )
is03r_p.zip , is03e_p.zip
Тексты тестовых примеров ( Паскаль )
tis03r_p.zip , tis03e_p.zip

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

Назначение

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

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

Пусть в узлах  xi :  x1 < x2 < ...< xl , заданы значения табличной функции  gi . Строится сглаживающая сплайн - функция

                 n
    f(x) =   ∑   ai Ni k (x) ,  определяемая условиями :
               i=1
      l
     ∑  wi ( gi - f( xi ) )2  -  min a  ;
    i=1 

здесь  wi > 0 - заданные весовые коэффициенты, Ni k,  i = 1, ..., n - нормированные В - сплайны k - го порядка, соответствующие узлам  ti, ti + 1, ..., ti + k таким, что :  t1 ≤ t2 ≤ ...≤ tk < tk + 1 < ...< tn < tn + 1 ≤ ... ≤ tn + k. При этом требуется, чтобы  tk ≤x1 < xl ≤ tn + 1,  а  l ≥ n.

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

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

    SUBROUTINE  IS03R (N, K, LX, T, X, G, W, A, R, R1, R2, IERR) 

Параметры

N - заданное число нормированных В - сплайнов (тип: целый);
K - заданный порядок В - сплайна (тип: целый);
LX - заданное число узлов аппроксимации, LX ≥ N (тип: целый);
T - вещественный вектоp длины N + K заданных значений узлов сплайна: T (1) ≤ T (2) ≤ ...≤ T (k) < T (k + 1) < ...< T (N + 1) ≤ T (N + 2) ≤ ...≤ T (N + K);
X - вещественный вектоp длины LX заданных значений узлов аппроксимации:  T (K) ≤ X (1) < X (2) < ... < X (LX) ≤ T (N + 1);
G - вещественный вектоp длины LX заданных значений сглаживаемой функции, G (I) = gi ,  I = 1, 2, ..., LX;
W - вещественный вектоp длины LX весовых коэффициентов W (I) = WI > 0 ,  I = 1, 2, ..., LX;
A - вещественный вектоp длины N, коэффициентов сглаживающего сплайна,  aI = A (I) ,  I = 1, 2, ..., N;
R - вещественный двумерный рабочий массив размера N на (2*K - 1);
R1 - вещественный рабочий вектоp длины K;
R2 - вещественный двумерный рабочий массив размера N на K;
IERR - целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом:
IERR=65 - если матрица нормальной системы уpавнений для определения коэффициентов сглаживающего сплайна вырождена.

Версии

IS03D - среднеквадратическое сглаживание дискретно заданной функции сплайном k - го порядка с повышенной точностью. Массивы T, X, G, W, A, R, R1, R2 имеют тип DOUBLE PRECISION.

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

UTIS10 - подпрограмма выдачи диагностических сообщений при работе подпрограммы IS03R.
UTIS11 - подпрограмма выдачи диагностических сообщений при работе подпрограммы IS03D.
ASB1R - решение системы линейных алгебраических уpавнений с ленточной матрицей, заданной в компактной форме, с выбором ведущего элемента по столбцу.
ASB1D - решение системы линейных алгебраических уpавнений с ленточной матрицей, заданной в компактной форме с удвоенной точностью (выбор ведущего элемента по столбцу).

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

  В подпрограммах IS03R, IS03D используются служебные подпрограммы I I21R1, I I21D1.

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

       DIMENSION  T(9), X(12), G(12), W(12), A(6), R(6, 5), R1(3), 
      *                       R2(6, 3)
       DATA  T /3*0., 2., 4., 6., 3*8./
       DATA  W /12*1./
       N = 6
       LX = 12
       K = 3
       DO 5  I = 1, LX
       XX = .5 + .5*FLOAT(I)
       X(I) = XX
       G(I) = XX*XX*XX
    5 CONTINUE
       CALL  IS03R (N, K, LX, T, X, G, W, A, R, R1, R2, IERR)

Результаты:

       IERR  =  0
       
       A  =  ( .290,  -2.236,  18.081,  110.,  321.72,  520.93 )