|
Текст подпрограммы и версий ( Фортран ) ii22r.zip , ii22d.zip |
Тексты тестовых примеров ( Фортран ) tii22r.zip , tii22d.zip |
|
Текст подпрограммы и версий ( Си ) ii22r_c.zip , ii22d_c.zip |
Тексты тестовых примеров ( Си ) tii22r_c.zip , tii22d_c.zip |
|
Текст подпрограммы и версий ( Паскаль ) ii22r_p.zip , ii22e_p.zip |
Тексты тестовых примеров ( Паскаль ) tii22r_p.zip , tii22e_p.zip |
Вычисление значения интерполяционной рациональной функции в заданной точке по модифицированной схеме Невилла.
Пусть заданы узлы сетки x1, x2, ..., xNA, упорядоченные по возрастанию: x1 < x2 < ...< xNA и значения y1, y2, ..., yNA интерполируемой функции f (x) в узлах этой сетки. Подпрограмма I I22R вычисляет значение Y интерполяционной рациональной функции
R(x) = PNN(x) / QNN(x) =
= ( p0 + p1 x + ... + pNN xNN ) / ( q0 + q1 x + ... + qNN xNN )
в заданной точке X и оценку ошибки DY полученного значения по модифицированной схеме Невилла.
Н.С.Бахвалов. Численные методы. Изд - во "Наука", 1973.
SUBROUTINE I I22R (XA, YA, NA, NN, X, Y, DY, C, D, IERR)
Параметры
| XA - | вещественный вектор длины NA, содержащий узлы заданной сетки x1, x2, ..., xNA, упорядоченные по возрастанию; |
| YA - | вещественный вектор длины NA, содержащий значения y1, y2, ..., yNA интерполируемой функции в узлах заданной сетки; |
| NA - | количество узлов сетки, NA ≥ 2*NN + 1 (тип: целый); |
| NN - | заданная степень полиномов PNN (x) и QNN (x), NN ≥ 1 (тип: целый); |
| X - | заданная точка, в которой ищется значение интерполяционной рациональной функции (тип: вещественный); |
| Y - | вещественная переменная, содержащая вычисленное значение интерполяционной рациональной функции в точке X; |
| DY - | вещественная переменная, содержащая оценку ошибки вычисленного значения интерполяционной рациональной функции в точке X; |
| C, D - | вещественные векторы длины 2*NN + 1, используемые в подпрограмме в качестве рабочих; |
| IERR - | целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом |
| IERR=65 - | когда интерполируемая функция имеет полюс в заданной точке X; |
| IERR=66 - | когда число узлов сетки меньше 2*NN + 1 . |
Версии
| I I22D - | вычисление значения интерполяционной рациональной функции в заданной точке по модифицированной схеме Невилла в режиме удвоенной точности. При этом параметры XA, YA, X, Y, DY, C и D должны иметь тип DOUBLE PRECISION. |
Вызываемые подпрограммы
| UTI I10 - | подпрограмма выдачи диагностических сообщений при работе подпрограммы I I22R. |
| UTI I11 - | подпрограмма выдачи диагностических сообщений при работе подпрограммы I I22D. |
Замечания по использованию
| Точка X не обязательно должна лежать внутри заданной сетки. В случае, когда X < x1 или X > xNA, подпрограммы I I22R и I I22D строят экстраполяционную рациональную функцию и вычисляют ее значение в точке X. |
DIMENSION XA(20), YA(20), C(9), D(9)
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
NN = 4
CALL II22R (XA, YA, NA, NN, X, Y, DY, C, D, IERR)
Результаты:
Y = 0.89121
DY = 0.96018*10 - 8
IERR = 0