Текст подпрограммы и версий ( Фортран ) 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 |
Вычисление значения интерполяционного полинома в заданной точке по модифицированной схеме Невилла.
Пусть заданы узлы сетки 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