Текст подпрограммы и версий ( Фортран ) 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 |
Среднеквадратическое сглаживание дискретно заданной функции сплайном 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 )