Текст подпрограммы и версий ( Фортран )
iah4r.zip , iah4d.zip
Тексты тестовых примеров ( Фортран )
tiah4r.zip , tiah4d.zip
Текст подпрограммы и версий ( Си )
iah4r_c.zip , iah4d_c.zip
Тексты тестовых примеров ( Си )
tiah4r_c.zip , tiah4d_c.zip
Текст подпрограммы и версий ( Паскаль )
iah4r_p.zip , iah4e_p.zip
Тексты тестовых примеров ( Паскаль )
tiah4r_p.zip , tiah4e_p.zip

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

Назначение

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

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

Пусть на отрезке [A, B] задана функция  f (x). Тогда подпрограмма IAH4R вычисляет коэффициенты  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 ) . 

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

                                                      N
                  F(x)  =  ∫  f (t) dt  ≈  [  ∑   CINTj Tj-1 (y) ] - CINT1 / 2
                                                     j=1

по формулам

                   CINTj  =  [ (cj-1  -  cj+1) / (2(j-1)) ] * (B-A)/2  ,     j = 2, 3,..., N-1
                                       
                               CINTN  =  cN-1 / (2(N-1)) * (B-A)/2 

Постоянной интегрирования соответствует коэффициент CINT1 , значение которого выбирается в подпрограмме таким образом, чтобы значение F (A) было равно нулю.

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

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

    SUBROUTINE  IAH4R (A, B, C, N, FUNC, CINT, RF) 

Параметры

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

Версии

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

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

       IAH1R -
       IAH1D  
вычисление коэффициентов ряда по многочленам Чебышева, аппроксимирующего заданную функцию, в режиме одинарной и удвоенной точности; используются в подпрограммах IAH4R и IAH4D соответственно.

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

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

       DIMENSION  C(10), CINT(10), RF(10)
       EXTERNAL  FUNC
       N = 10
       A = 0.0
       B = 1.0 
       CALL  IAH4R (A, B, C, N, FUNC, CINT, RF) 

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

Результаты:

       CINT = ( 0.899853,          0.425221,          -0.293447E-01,
                     -0.449977E-02,   0.154123E-03,
                       0.141370E-04, -0.321255E-06,  -0.218021E-07,
                       0.540888E-09,   0.172063E-08 )