Текст подпрограммы и версий ( Фортран ) iib2r.zip |
Тексты тестовых примеров ( Фортран ) tiib2r.zip |
Текст подпрограммы и версий ( Си ) iib2r_c.zip |
Тексты тестовых примеров ( Си ) tiib2r_c.zip |
Текст подпрограммы и версий ( Паскаль ) iib2r_p.zip |
Тексты тестовых примеров ( Паскаль ) tiib2r_p.zip |
Вычисление значения заданной в узлах равномерной сетки табличной функции от одной переменной методом аппроксимирующих квадратичных сплайнов.
Пусть в узлах равномерной сетки x K: x1 < x2 < ... < x M с шагом H: x K + 1 = x K + H заданы значения yK = y (x K) , а узлы t K сетки, на которой строятся аппроксимирующие сплайны, таковы, что t K = x K - H / 2.
Значение аппроксимирующего квадратичного сплайна вычисляется по формулам:
S (x) = y2 + ( y2 - y1 ) ( x - x2 ) / H , x ∈ [x1, t3] i+1 S (x) = ∑ y K s K-1 ( x ) , x ∈ [t i , t i + 1] , i = 3, ..., M-3 k = i-1 S (x) = yM-1 + ( yM - yM-1 ) ( x - x M ) / H , x ∈ [t M - 2, x M] ,
где s K (x) - квадратичный В - сплайн [1], построенный по узлам t K, t K + 1, t K + 2.
А.И.Гребенников. Аппроксимация квадратичными сплайнами, Численный анализ на ФОРТРАНе, вып.15, Изд - во МГУ, 1976.
SUBROUTINE I IB2R (F, M, A, H, X, S, IERR)
Параметры
F - | вещественный вектоp длины M значений заданной табличной функции; |
M - | число узлов сетки (тип: целый); |
A - | первый узел сетки x1 (тип: вещественный); |
H - | шаг сетки, H > 0 (тип: вещественный); |
X - | аргумент, при котоpом производятся вычисления (тип: вещественный); |
S - | вещественная переменная, которая полагается pавной вычисленному значению функции; |
IERR - | целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом: |
IERR=65 - | когда зафиксирована ошибка в задании шага, H ≤ 0; |
IERR=66 - | когда аргумент X лежит вне отрезка [x1, x M]. |
Версии: нет
Вызываемые подпрограммы
UTI I12 - | подпрограмма выдачи диагностических сообщений при работе подпрограммы I IB2R. |
Замечания по использованию: нет
DIMENSION F(6), X(6) PI = 3.141592653 / 5 DO 1 K = 1, 6 X(K) = (K - 1) * PI F(K) = COS( X(K) ) 1 CONTINUE CALL IIB2R (F, 6, 0., PI, X(3), S, IERR) Результат: S = 0.29