Текст подпрограммы и версий ( Фортран )
ip02r.zip , ip02d.zip
Тексты тестовых примеров ( Фортран )
tip02r.zip , tip02d.zip
Текст подпрограммы и версий ( Си )
ip02r_c.zip , ip02d_c.zip
Тексты тестовых примеров ( Си )
tip02r_c.zip , tip02d_c.zip
Текст подпрограммы и версий ( Паскаль )
ip02r_p.zip , ip02e_p.zip
Тексты тестовых примеров ( Паскаль )
tip02r_p.zip , tip02e_p.zip

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

Назначение

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

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

Пусть заданы узлы сетки  x1, x2, ..., xNA, упорядоченные по возрастанию:  x1 < x2 < ...< xNA и значения  y1, y2, ..., yNA интерполируемой функции  f (x) в узлах этой сетки. IP02R вычисляет значение Y интерполяционного полинома степени NP в заданной точке X и оценку ошибки DY полученного значения по модифицированной схеме Невилла.

Н.С.Бахвалов. Численные методы. Изд - во "Наука", 1973.

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

    SUBROUTINE  IP02R (XA, YA, NA, NP, X, Y, DY, C, D, IERR) 

Параметры

XA - вещественный вектор длины NA, содержащий узлы заданной сетки  x1, x2, ..., xNA, упорядоченные по возрастанию;
YA - вещественный вектор длины NA, содержащий значения  y1, y2, ..., yNA интерполируемой функции в узлах заданной сетки;
NA - количество узлов сетки, NA ≥ NP + 1 (тип: целый);
NP - заданная степень интерполяционного полинома, NP ≥ 1 (тип: целый);
X - заданная точка, в которой ищется значение интерполяционного полинома (тип: вещественный);
Y - вещественная переменная, содержащая вычисленное значение интерполяционного полинома в точке X;
DY - вещественная переменная, содержащая оценку ошибки вычисленного значения интерполяционного полинома в точке X;
C, D - вещественные векторы длины NP + 1, используемые в подпрограмме в качестве рабочих;
IERR - целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом
IERR=65 - когда по крайней мере два узла сетки совпадают;
IERR=66 - когда число узлов сетки меньше или равно степени интерполяционного полинома.

Версии

IP02D - вычисление значения интерполяционного полинома по модифицированной схеме Невилла в режиме удвоенной точности. При этом параметры XA, YA, X, Y, DY, C и D должны иметь тип DOUBLE PRECISION.

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

UTIP10 - подпрограмма выдачи диагностических сообщений при работе подпрограммы IP02R;
UTIP11 - подпрограмма выдачи диагностических сообщений при работе подпрограммы IP02D.

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

  Точка X не обязательно должна лежать внутри заданной сетки. В случае, когда X < x1 или X > xNA, подпрограммы IP02R и IP02D строят экстраполяционный полином степени NP и вычисляют его значение в точке X.

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

       DIMENSION  XA(20), YA(20), C(5), D(5) 
       NA = 20 
       R = 0.0 
       DO 1  I = 1, NA 
       XA(I) = R 
       YA(I) = SIN(XA(I)) 
    1 R = R + 0.2 
       X = 1.1 
       NP = 4 
       CALL  IP02R (XA, YA, NA, NP, X, Y, DY, C, D, IERR) 

Результаты:
      
             Y = 0.89121 
          DY = 0.000034719 
       IERR = 0