Текст подпрограммы и версий ( Фортран )
qst2r.zip  qst2d.zip 
Тексты тестовых примеров ( Фортран )
tqst2r.zip  tqst2d.zip 
Текст подпрограммы и версий ( Си )
qst2r_c.zip  qst2d_c.zip 
Тексты тестовых примеров ( Си )
tqst2r_c.zip  tqst2d_c.zip 
Текст подпрограммы и версий ( Паскаль )
qst2r_p.zip  qst2e_p.zip 
Тексты тестовых примеров ( Паскаль )
tqst2r_p.zip  tqst2e_p.zip 

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

Назначение

Вычисление определенного интеграла от векторной функции по обобщенной квадратурной формуле трапеций.

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

 Подпрограмма  QST2R вычисляет интеграл 
                     B
                    ∫  f (x) dx 
                   A 
от векторной функции      F(x)  =  { f i (x) } ,   i =1, ... , N
с покомпонентной  погрешностью 
                            B
         ЕРS ( 1 + |  ∫  f i (x) dx | )
                           A 

по обобщенной квадратурной формуле трапеций с шагом  h = (B - A)/M, где  M - число частичных отрезков разбиения.

Я.М.Жилейкин, М.В.Соколовский. Набор стандартных программ для вычисления интегралов от векторных функций, Сб. "Методы и алгоритмы в численном анализе", Изд - во МГУ, 1981.

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

    SUBROUTINE  QST2R (RINT, A, B, F, N, EPS, K, IND, R, IERR) 

Параметры

RINT - вещественный вектоp длины  N, содержащий вычисленные значения интегралов;
A, B - заданные нижний и верхний пределы интегрирования (тип: вещественный);
F - имя подпрограммы, вычисляющей подинтегральные функции;
N - размерность вектоpа - функции  F (x) (тип: целый);
EPS - заданная меpа погрешности вычисления интеграла (тип: вещественный);
K - целая переменная, задающая начальное число частичных отрезков разбиения;
IND - целый вектоp длины  N, каждая компонента которого pавна числу частичных отрезков разбиения, при котоpом достигается заданная точность;
R - вещественный рабочий вектоp длины 2 N;
IERR - целая переменная, служащая для диагностических сообщений:
IERR=65 - когда заданная точность не может быть достигнута при максимально возможном числе (1048576) частичных отрезков разбиения.

Версии

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

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

UTQS10 - подпрограмма выдачи диагностических сообщений при работе подпрограммы QST2R;
UTQS12 - подпрограмма выдачи диагностических сообщений при работе подпрограммы QST2D.

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

  1. 

Первый оператор подпрограммы  F должен иметь вид:

              SUBROUTINE  F(X, Y, I )
     Здесь:
     X - аргумент функции  F (тип: вещественный);
     Y - вещественный вектоp длины  N вычисленных
           значений функции  F;
     I  - целый вектоp длины  N; если его  i - ая компонента
           отлична от нуля, то интеграл от этой компоненты
           функции  F не вычисляется. 
  2. 

При EPS ≤ 0 происходит только один просчет при заданном значении  K.

  3. 

Вычисление интеграла от отдельной компоненты прекращается как только на этой компоненте достигается заданная точность.

  4. 

Если для каких - либо компонент векторной функции заданная погрешность интегрирования не может быть достигнута, то соответствующие компоненты вектоpа IND полагаются равными нулю.

  5. 

Погрешность определяется по модулю разности двух просчетов по  M и 2 M частичным отрезкам разбиения. Если заданная точность не достигнута, то значение  M удваивается.

  6.  В подпрограмме QST2D параметры RINT, A, B, F, EPS, R имеют тип DOUBLE PRECISION.

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

       SUBROUTINE  FUN(X, Y, I)
       DIMENSION  Y(1), I(1)
       Y(1) = 1.
       DO 1  J = 1, 4
    1 Y(J + 1) = Y(J)*X
       RETURN
       END
    
       DIMENSION  RINT(5), R(10), IND(5)
       EXTERNAL  FUN
       CALL QST2R (RINT, 0., 1., FUN, 5, 1.E - 6, 1, IND, R, IERR)

Результаты:

                RINT                          IND
        1.0000000000 + 00                 1
        5.0000000000 - 01                  1
        3.3333349227 - 01              512
        2.5000023841 - 01              512
        2.0000031788 - 01              512

     IERR  =  0