Текст подпрограммы и версий ( Фортран )
iis2r.zip
Тексты тестовых примеров ( Фортран )
tiis2r.zip
Текст подпрограммы и версий ( Си )
iis2r_c.zip
Тексты тестовых примеров ( Си )
tiis2r_c.zip
Текст подпрограммы и версий ( Паскаль )
iis2r_p.zip
Тексты тестовых примеров ( Паскаль )
tiis2r_p.zip

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

Назначение

Вычисление значения кусочно - полиномиальной функции в заданной точке.

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

Пусть кусочно - полиномиальная функция задана следующим образом: на каждом полуинтервале (xk, xk + 1),  k = 0, 1, ..., N - 1, неравномерной сетки  x0 < x1 < x2 < ... < xN она является полиномом степени  M

     Ak1 (x - xk)M + Ak2 (x - xk)M - 1 + ... + Ak M (x - xk) + Ak M + 1 

с известными коэффициентами  Ak1, Ak2, ..., Ak M + 1. Подпрограмма вычисляет значения этой кусочно - полиномиальной функции в заданной точке  xt :  x0 < xt < xN.

Использование

    SUBROUTINE  I IS2R (XT, N, X, M, A, YT, IERR) 

Параметры

XT - заданная точка  xt, в которой ищется значение кусочно - полиномиальной функции (тип: вещественный);
N - заданное число полуинтервалов,  N ≥ 2 (тип: целый);
X - вещественный одномерный массив размерности  N + 1, в котоpом заданы узлы сетки  xk;
M - заданная степень кусочно - полиномиальной функции (тип: целый);
A - вещественный двумерный массив размера  N * (M + 1), в котоpом задаются на соответствующих местах коэффициенты  Ai j кусочно - полиномиальной функции в порядке убывания степеней;
YT - вещественная переменная, содержащая вычисленное значение кусочно - полиномиальной функции в заданной точке  xt;
IERR - целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом:
IERR=65 - когда заданное значение  XT не принадлежит полуинтервалу (x0, xN].

Версии: нет

Вызываемые подпрограммы

UTI I10 - подпрограмма выдачи диагностических сообщений при работе подпрограммы I IS2R.

Замечания по использованию

  Коэффициенты кусочно - полиномиальной функции помещаются в матрице  A по столбцам.

Пример использования

На сетке  xk = (k - 1) * π / 4,   k = 1, ..., 5, заданы значения коэффициентов интерполяционного полинома.

       DIMENSION  X(5), A(4, 6)
       DATA  XT /0.134/
       DATA  X /(0., 0.7854, 1.5708, 2.3562, 3.1416/
       DATA  A(1, 1), A(2, 1), A(3, 1), A(4, 1) /0.0115, 0.0028, -0.0036, 0.0004/
       DATA  A(1, 2), A(2, 2), A(3, 2), A(4, 2) /-0.0075, 0.0301, 0.0467, 0.0167/
       DATA  A(1, 3), A(2, 3), A(3, 3), A(4, 3) /-0.1624, -0.1152, -0.0026, 0.122/
       DATA  A(1, 4), A(2, 4), A(3, 4), A(4, 4) /0., -0.355, -0.5005, -0.3512/
       DATA  A(1, 5), A(2, 5), A(3, 5), A(4, 5) /1., 0.7071, 0., -0.7071/
       DATA  A(1, 6), A(2, 6), A(3, 6), A(4, 6) /0., 0.7071, 1., 0.7071/
       N = 4
       M = 5
       CALL  IIS2R (XT, N, X, M, A, YT, IERR)

Результат:    YT  =  0.1336