Текст подпрограммы и версий ( Фортран ) iis2r.zip |
Тексты тестовых примеров ( Фортран ) tiis2r.zip |
Текст подпрограммы и версий ( Си ) iis2r_c.zip |
Тексты тестовых примеров ( Си ) tiis2r_c.zip |
Текст подпрограммы и версий ( Паскаль ) iis2r_p.zip |
Тексты тестовых примеров ( Паскаль ) tiis2r_p.zip |
Вычисление значения кусочно - полиномиальной функции в заданной точке.
Пусть кусочно - полиномиальная функция задана следующим образом: на каждом полуинтервале (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