Текст подпрограммы и версий ids4r.zip |
Тексты тестовых примеров tids4r.zip |
Текст подпрограммы и версий ( Си ) ids4r_c.zip |
Тексты тестовых примеров ( Си ) tids4r_c.zip |
Текст подпрограммы и версий ( Паскаль ) ids4r_p.zip |
Тексты тестовых примеров ( Паскаль ) tids4r_p.zip |
Вычисление значений вторых производных вещественной табличной параметрической функции в узлах неравномерной сетки методом интерполирующих кубических сплайнов.
Пусть заданы пары значений (xi, yi). Считается, что xi = x (ti), yi = y (ti) , i = 1, 2, ... N, а величины ti = ti - 1 + di, i = 2, 3, ... N, t1 = 0. Шаги по параметру di могут определятся из следующих формул:
а) 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 .
Далее по парам значений (ti, xi), (ti, yi) , i = 1, ..., N и известным значениям вторых производных в концевых точках x''1, x''N и y''1, y''N методом кубических сплайнов [1] вычисляются значения вторых производных x''i и y''i, i = 2, ...,N - 1.
Интерполирующие функции x = x (t) и y = y (t) на каждом из отрезков [ti, ti + 1] представляют из себя кубические полиномы, построенные по значениям (ti, xi), (ti, x''i), (ti + 1,xi + 1), (ti + 1,x''i + 1) и (ti, yi), (ti, y''i), (ti + 1, yi + 1), (ti + 1, y''i + 1) как интерполяционные полиномы Эрмита [2]. Tак построенные функции x (t) и y (t) являются дважды непрерывно дифференцируемыми на всем отрезке [t1, tN] по параметру t.
1. |
Дж.Алберг, Э.Нильсон, Дж.Уолш, Теория сплайнов и ее приложения. M., "Мир", 1972. |
2. | И.С.Березин, Н.П.Жидков, Методы вычислений, т.1, Физматгиз, 1962. |
SUBROUTINE IDS4R (N, NPAR, T, X, X2, Y, Y2, F, G)
Параметры
N - | число узлов сетки, N ≥ 3 (тип: целый); |
NPAR - | одно из целых чисел 1, 2, 3, характеризующих способ параметризации; при NPAR = 1 величины di вычисляются по формуле а), при NPAR = 2 - по формуле б), при NPAR = 3 - по формуле в); |
T - | одномерный массив значений ti размерности N (тип: вещественный); |
X - | одномерный массив значений xi размерности N (тип: вещественный); |
X2 - | одномерный вещественный массив вычисляемых значений вторых производных функции x (t) в узлах сетки ti; на входе X2 (1) = x''1, X2 (N) = x''N; длина масива X2 pавна N; |
Y - | одномерный массив значений yi размерности N (тип: вещественный); |
Y2 - | одномерный вещественный массив вычисляемых значений вторых производных функции y (t) в узлах сетки ti; на входе Y2 (1) = y''1, Y2 (N) = y''N; длина массива Y2 pавна N; |
F, G - | одномерные рабочие массивы размерности N (тип: вещественный). |
Версии: нет
Вызываемые подпрограммы
IDS0R - | вычисление значений вторых производных вещественной табличной функции от одного переменного в узлах неравномерной сетки методом интерполирующих кубических сплайнов при известных значениях вторых производных в концевых точках. |
Замечания по использованию: нет
На верхней части единичной полуокружности были взяты десять равноотстоящих точек. Вычислялись значения вторых производных x''i и y''i , i = 2, ..., 9 .
DIMENSION T(10), X(10), X2(10), Y(10), Y2(10), F(10), G(10) DO 5 I = 1, 10 X(I) = -1. + (I - 1)*(2./9.) 5 Y(I) = 1. - X(I)*X(I) X2(1) = -1. X2(10) = 1. Y2(1) = 0. Y2(10) = 0. CALL IDS4R (10, 1, T, X, X2, Y, Y2, F, G) Результат: X2 = ( 1.00, 0.83, 0.55, 0.34, 0.11, -0.11, -0.34, -0.55, -0.83, -1.00 ) Y2 = ( 0.00, -0.70, -0.83, -0.96, -1.00, -1.00, -0.96, -0.83, -0.70, 0.00 )