Текст подпрограммы и версий ( Фортран )
iib2r.zip
Тексты тестовых примеров ( Фортран )
tiib2r.zip
Текст подпрограммы и версий ( Си )
iib2r_c.zip
Тексты тестовых примеров ( Си )
tiib2r_c.zip
Текст подпрограммы и версий ( Паскаль )
iib2r_p.zip
Тексты тестовых примеров ( Паскаль )
tiib2r_p.zip

Подпрограмма:  IIB2R

Назначение

Вычисление значения заданной в узлах равномерной сетки табличной функции от одной переменной методом аппроксимирующих квадратичных сплайнов.

Математическое описание

Пусть в узлах равномерной сетки  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