Текст подпрограммы и версий ( Фортран )
iah1r.zip , iah1d.zip
Тексты тестовых примеров ( Фортран )
tiah1r.zip , tiah1d.zip
Текст подпрограммы и версий ( Си )
iah1r_c.zip , iah1d_c.zip
Тексты тестовых примеров ( Си )
tiah1r_c.zip , tiah1d_c.zip
Текст подпрограммы и версий ( Паскаль )
iah1r_p.zip , iah1e_p.zip
Тексты тестовых примеров ( Паскаль )
tiah1r_p.zip , tiah1e_p.zip

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

Назначение

Вычисление коэффициентов ряда по многочленам Чебышева, аппроксимирующего заданную функцию.

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

Пусть на отрезке [A, B] задана функция f (x). Тогда подпрограмма IAH1R вычисляет коэффициенты  cj (j = 1, 2, ..., N) по формуле

                N
 cj = 2/N  ∑  f ( (B-A)/2  cos (π (k-1/2) / N) + (B+A)/2 ) cos (π (j-1) (k-1/2) / N)
               k=1 

в разложении функции  f (x) в ряд по многочленам Чебышева:

                              N
              f(x)  ≈  [  ∑   cj Tj-1(y) ]  -  c1 / 2 ,
                             j=1
 где    y  ≡  ( x - (B + A) / 2 ) / ( (B - A) / 2 ) . 

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

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

    SUBROUTINE  IAH1R (A, B, C, N, FUNC, RF) 

Параметры

A, B - нижняя и верхняя границы отрезка, на котором задана аппроксимируемая функция  f (x) (тип: вещественный);
C - вещественный вектор длины N, содержащий вычисленные значения коэффициентов ряда по многочленам Чебышева, аппроксимирующего функцию  f (x);
N - заданное количество членов ряда (тип: целый);
FUNC - имя вещественной подпрограммы - функции, вычисляющей значения функции  f (x) в любой точке отрезка [A, B]; ее первый оператор должен иметь вид:
FUNCTION  FUNC (X),
где X - значение аргумента (тип: вещественный);
RF - вещественный вектор длины N, используемый в подпрограмме в качестве рабочего.

Версии

IAH1D - вычисление коэффициентов ряда по многочленам Чебышева, аппроксимирующего заданную функцию, в режиме удвоенной точности; при этом параметры A, B, C и RF должны иметь тип DOUBLE PRECISION, а подпрограммафункция FUNC должна быть описана как DOUBLE PRECISION  FUNCTION .

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

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

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

       DIMENSION  C(10), RF(10) 
       EXTERNAL  FUNC 
       N = 10 
       A = -1.0 
       B = 1.0 
       CALL  IAH1R (A, B, C, N, FUNC, RF) 

       FUNCTION  FUNC(X) 
       FUNC = ATAN(X) 
       RETURN 
       END 

Результаты:
       C  =  ( 0.0,                     0.828427,         -0.528181E-07,   -0.473785E-01,  -0.337255E-07,
                  0.487762E-02,  -0.626018E-07,  -0.599281E-03,   -0.630270E-07,   0.910385E-04 )