Текст подпрограммы и версий ( Фортран )
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

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

Назначение

Рациональная интерполяция таблично - заданной функции с помощью непрерывных дробей.

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

Пусть заданы 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 )