Текст подпрограммы и версий ( Фортран ) ids6r.zip |
Тексты тестовых примеров ( Фортран ) tids6r.zip |
Текст подпрограммы и версий ( Си ) ids6r_c.zip |
Тексты тестовых примеров ( Си ) tids6r_c.zip |
Текст подпрограммы и версий ( Паскаль ) ids6r_p.zip |
Тексты тестовых примеров ( Паскаль ) tids6r_p.zip |
Вычисление вторых производных табличной циклической функции в узлах неравномерной сетки методом интерполирующих кубических сплайнов.
Пусть в узлах сетки x1, x2, ...,xN заданы значения циклической функции yK = y(xK), причем x1 = xN, y1 = yN. Предположим, что xi = x (ti), yi = y (ti), i = 1, 2, ..., N, где величины ti определяются соотношениями:
ti = ti-1 + di , для i = 2, 3, ..., N и t1 = 0 .
Шаги di по параметру ti могут определяться одной из следующих формул:
а) di = ( (Δxi)2 + (Δyi)2 )1/2 б) di = ( Δxi )2 + ( Δyi )2 в) di = | Δxi | + | Δyi | , i = 2, ..., N-1 ,
где Δ xi = xi + 1 - xi , Δ yi = yi + 1 - yi.
Значения вторых производных xi, yi определяются по парам значений (ti, xi), (ti, yi), i = 1, 2, ..., N методом интерполирующих кубических сплайнов.
Дж.Алберг, Э.Нильсон, Дж.Уолш, Теория сплайнов и ее приложения, M., "Мир", 1972.
SUBROUTINE IDS6R (N, NPAR, T, X, X2, Y, Y2, F, G, H)
Параметры
N - | заданное число узлов сетки, N ≥ 3 (тип: целый); |
NPAR - | характеризует способ параметризации заданной функции (тип: целый); при этом: |
NPAR=1 - | если величины di определяются по формуле а); |
NPAR=2 - | если величины di определяются по формуле б); |
NPAR=3 - | если величины di определяются по формуле в); |
T - | вещественный одномерный массив значений ti размерности N; |
X - | вещественный одномерный массив значений xi размерности N, причем X (1) = X (N); |
X2 - | вещественный одномерный массив размерности N вычисляемых значений вторых производных x (t) в узлах сетки ti; |
Y - | вещественный одномерный массив значений yi размерности N, причем Y (1) = Y (N); |
Y2 - | вещественный одномерный массив размерности N вычисляемых значений вторых производных y (t) в узлах сетки ti; |
F, G, H - | вещественные одномерные рабочие массивы размерности N. |
Версии: нет
Вызываемые подпрограммы
IDS5R - | вычисление значений вторых производных табличной периодической функции от одного переменного в узлах неравномерной сетки, методом интерполяционных кубических сплайнов. |
Замечания по использованию: нет
На единичной окружности были взяты 17 точек. Вычислялись значения x''i и y''i, i = 1, 2, ..., 17.
DIMENSION T(17), X(17), X2(17), Y(17), Y2(17), F(17), G(17), * H(17) DATA X /-1., -0.75, -0.5, -0.25, 0., 0.25, 0.5, 0.75, 1., 0.75, 0.5, * 0.25, 0., -0.25, -0.5, -0.75, -1/ DATA Y /0., -0.6614, -0.8660, -0.9682, -1., -0.9682, -0.8660, * -0.6614, 0., 0.6614, 0.8660, 0.9682, 1., 0.9682, 0.8660, * 0.6614, 0./ N = 17 NPAR = 1 CALL IDS6R (N, NPAR, T, X, X2, Y, Y2, F, G, H) Результаты: X2 = ( 1.10, 0.77, 0.5, 0.25, -0.0002, -0.25, -0.5, -0.76, -0.11, -0.76, -0.5, -0.25, -0.0019, 0.26, 0.48, 0.85, 1.1 ) Y2 = ( 0.041, 0.73, 0.87, 0.98, 1., 0.98, 0.086, 0.074, 0.00001, -0.74, -0.86, -0.99, -1., -1., -0.82, -0.89, 0.041 )