Текст подпрограммы и версий ( Фортран ) ias1r.zip |
Тексты тестовых примеров ( Фортран ) tias1r.zip |
Текст подпрограммы и версий ( Си ) ias1r_c.zip |
Тексты тестовых примеров ( Си ) tias1r_c.zip |
Текст подпрограммы и версий ( Паскаль ) ias1r_p.zip |
Тексты тестовых примеров ( Паскаль ) tias1r_p.zip |
Вычисления значения кубического аппроксимирующего сплайна или его производной до третьего порядка при заданном значении аргумента на заданной (возможно неравномерной) сетке сплайна при заданных коэффициентах.
Пусть заданы сетка сплайна TX (I) , I = 1, ..., NX + 4 и его коэффициенты CX (I), I = 1, ..., NX + 2, где NX - число узлов исходной сетки.
Для вычисления значения сплайна или его производной до третьего порядка при заданном аргументе XX определяется номер интервала на массиве TX такой, чтобы XX принадлежал отрезку [ТХ (IХ), ТХ (IХ + 1)] , где 3 ≤ IX ≤ NX + 1.
Тогда из свойств локальных базисных сплайнов выводятся рекурентные формулы для вычисления производной порядка IDX, где 0 ≤ IDX ≤ 3 :
A(I) = CX(IX - 3 + I) , I = 1, ..., 4 ; A(I) = (4 - J) * ( A(I + 1) - A(I) ) / ( TX(IX + I) - TX(IX - 4 + I + J) ) , I = 1, ..., 4-J , J = 1 ,..., IDX ; B(I) = TX(IX + I) - XX , I = 1, ..., 3-IDX ; C(I) = XX - TX(IX + 1 - I) , I = 1,..., 3-IDX ; A(I) = ( C(5 - I - J)*A(I + 1) + B(I)*A(I) ) / ( C(5 - I - J) + B(I) ) , I = 1 ,..., 4-J , J = IDX + 1 ,..., 3 .
После проведения этих вычислений значение содержится в A (1).
REAL FUNCTION IAS1R (TX, NX, CX, IDX, XX)
Параметры
TX - | вещественный вектоp длины NX + 4, содержащий значения узлов сетки сплайна; |
NX - | заданное число узлов исходной сетки, NX ≥ 4 (тип: целый); |
CX - | вещественный вектоp длины NX + 2, содержащий значения коэффициентов сплайна; |
IDX - | заданный порядок вычисляемой производной, 0 ≤ IDX ≤ 3 (тип: целый); |
XX - | заданное значение аргумента, при котоpом производятся вычисления, TX (3) ≤ XX ≤ TX (NX + 2) (тип: вещественный). |
Версии: нет
Вызываемые подпрограммы: нет
Замечания по использованию
Подпрограмма - функция использует рабочие подпрограммы - функции IAS1R1 и IAS1R2. Для вычисления сетки и коэффициентов сплайна рекомендуется воспользоваться подпрограммой IAC1R. |
REAL IAS1R DIMENSION X(4), FX(4), TX(8), CX(8) DATA X /2., 3., 4., 5./, FX /8., 27., 64., 125./ CALL IAC1R (X, 4, FX, 1, 1, 12., 2, 30., TX, CX) S = IAS1R (TX, 4, CX, 1, 2.4) Результат: S = 17.280