Текст подпрограммы и версий ( Фортран ) ii23r.zip , ii23d.zip |
Тексты тестовых примеров ( Фортран ) tii23r.zip , tii23d.zip |
Текст подпрограммы и версий ( Си ) ii23r_c.zip , ii23d_c.zip |
Тексты тестовых примеров ( Си ) tii23r_c.zip , tii23d_c.zip |
Текст подпрограммы и версий ( Паскаль ) ii23r_p.zip , ii23e_p.zip |
Тексты тестовых примеров ( Паскаль ) tii23r_p.zip , tii23e_p.zip |
Рациональная интерполяция таблично - заданной функции с помощью непрерывных дробей.
Пусть заданы m точек x1 < x2 < x3 < ... < xm , в которых известны значения функции y = f (x) : y1, y2, y3,..., ym. Подпрограмма II23R по заданным ( xi, yi ), i = 1, 2,..., m, строит интерполирующую непрерывную дробь
a1 + ( x - x1 ) / ( a2 + ( x - x2 ) / ( a3 + ... + ( x - xm-1 ) / am ) ... )
Кроме того, подпрограмма II23R приводит вычисленную непрерывную дробь к рациональной функции
( b0 + b1 x + ... + bn xn ) / ( c0 + c1 x + ... + cn xn ) ,
где n ≤ m ÷ 2 . Здесь ÷ - означает целое деление.
SUBROUTINE II23R (M, X, Y, A, B, C, P, Q)
Параметры
M - | заданное число точек xi , i = 1, 2,..., m (тип: целый); |
X - | вещественный вектор длины M, содержащий заданные точки xi , i = 1, 2,..., m; |
Y - | вещественный вектор длины M, содержащий значения заданной функции в точках xi , i = 1, 2,..., m; |
A - | вещественный вектор длины M, содержащий вычисленные значения коэффициентов интерполирующей непрерывной дроби; |
B, C - | вещественные векторы длины M ÷ 2 + 1, содержащие коэффициенты полиномов соответственно в числителе и знаменателе интерполирующей рациональной функции; |
P, Q - | вещественные векторы длины M ÷ 2 + 1, используемые в подпрограмме в качестве рабочих. |
Версии
II23D - | рациональная интерполяция таблично - заданной функции с помощью непрерывных дробей в режиме удвоенной точности; при этом параметры X, Y, A, B, C, P и Q должны иметь тип DOUBLE PRECISION. |
Вызываемые подпрограммы: нет
Замечания по использованию: нет
DIMENSION X(5), Y(5), A(5), B(3), C(3), P(3), Q(3) X(1) = 50.0 X(2) = 65.0 X(3) = 60.0 X(4) = 95.0 X(5) = 75.0 Y(1) = -40.0 Y(2) = 25.0 Y(3) = 10.0 Y(4) = 30.0 Y(5) = -20.0 M = 5 CALL II23R (M, X, Y, A, B, C, P, Q) Результаты: A = ( -40, 0.2307692, 162.5, -0.3901895, -68.50479 ); B = ( 236142.4, -7220.216, 53.99522 ); C = ( 2825.957, -111.5789, 1 )