Текст подпрограммы и версий ( Фортран )
qss2r.zip  qss2d.zip 
Тексты тестовых примеров ( Фортран )
tqss2r.zip  tqss2d.zip 
Текст подпрограммы и версий ( Си )
qss2r_c.zip  qss2d_c.zip 
Тексты тестовых примеров ( Си )
tqss2r_c.zip  tqss2d_c.zip 
Текст подпрограммы и версий ( Паскаль )
qss2r_p.zip  qss2e_p.zip 
Тексты тестовых примеров ( Паскаль )
tqss2r_p.zip  tqss2e_p.zip 

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

Назначение

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

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

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

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

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

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

    SUBROUTINE  QSS2R (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 длины 3N;
IERR - целая переменная, служащая для диагностических сообщений:
IERR = 65 - когда заданная точность не может быть достигнута при максимально возможном числе (1048576) частичных отрезков разбиения.

Версии

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

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

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

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

  1. 

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

  2. 

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

  3. 

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

  4. 

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

  5. 

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

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

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

      SUBROUTINE  FUN(X, Y, I)
      DIMENSION  Y(1)
      Y(1) = X
      DO 1 J = 1, 4   
   1 Y(J + 1) = Y(J)*X
      RETURN
      END

      DIMENSION  RINT(5), R(15), IND(5)
      EXTERNAL  FUN
      CALL  QSS2R (RINT, 0., 1., FUN, 5, 1.E-6, 1, IND, R, IERR)

Результаты:

                RINT                       IND

      5.0000000000-01               1
      3.3333333333-01               1
      2.5000000000-01               1
      2.0000000794-01               16
      1.6666668653-01               16

      IERR  =  0