Текст подпрограммы и версий ( Фортран )
qsl6r.zip 
Тексты тестовых примеров ( Фортран )
tqsl6r.zip 
Текст подпрограммы и версий ( Си )
qsl6r_c.zip 
Тексты тестовых примеров ( Си )
tqsl6r_c.zip 
Текст подпрограммы и версий ( Паскаль )
qsl6r_p.zip 
Тексты тестовых примеров ( Паскаль )
tqsl6r_p.zip 

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

Назначение

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

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

 Интеграл
           B
           ∫ f (x) dx  =  I 
          A 

вычисляется для A и B таких, что | B - A | ≥ 10, при этом считается, что бесконечные пределы заданы близкими к минимальному (максимальному) числам, представимым на машине.

Вычисление I осуществляется последовательно по частичным отрезкам, длина которых удваивается. На каждом частичном отрезке интеграл считается с автоматическим выбором шага по формулам Лобатто, точным для полиномов 11 - ой степени.

Предполагается, что особенность подинтегральной функции локализована на отрезке [α, β]  [A, B]. Если какой - то частичный отрезок пересекается с отрезком [α, β], то на их пересечении вычисления ведутся с принудительным дроблением шага интегрирования.

Интеграл вычисляется с погрешностью E (1 + | I |), где E задается пользователем, при этом определяется также абсолютная погрешность вычисленного значения интеграла.

О.В.Брушлинская, Л.Г.Васильева. Набор стандартных программ приближенного вычисления однократных интегралов с автоматическим выбором шага. Сб. "Численный анализ на Фортране", вып. 8, Изд-во МГУ, 1974.

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

    SUBROUTINE  QSL6R (RINT, A, B, F, E, ALFA, BETA, XA, E1) 

Параметры

RINT - вещественная переменная, содержащая вычисленное значение интеграла;
A, B - заданные нижний и верхний пределы интегрирования (тип: вещественный);
F - имя вещественной подпрограммы - функции, вычисляющей подинтегральную функцию  f (x);
E - заданная абсолютная погрешность вычисления интегралов (тип: вещественный);
       ALFA -
       BETA  
заданные начало и конец отрезка, содержащего особенность подинтегральной функции (тип: вещественный);
XA - вещественная переменная, служащая для диагностических сообщений. на выходе из подпрограммы XA pавно либо - 3.4E38, если заданная точность достигнута, либо координате "особенности" подинтегральной функции;
E1 - вещественная переменная, содержащая оценку абсолютной погрешности вычисленного интеграла.

Версии: нет

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

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

  Точка отрезка [α, β] квалифицируется подпрограммой как "особенность" подинтегральной функции, если в ее окрестности шаг интегрирования стал предельно малым.

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

      FUNCTION  F(X)
      IF (X - 0.5) 2, 1, 4
   2 F = 1./SQRT(0.5 - X)
      GO TO 3
   1 F = 0.
      GO TO 3
   4 F = 1./SQRT(X - 0.5)
   3 RETURN
      END

      EXTERNAL  F
      A = 0.
      B = 200.5
      E = 1.E-10
      ALFA = 0.48
      BETA = 0.51
      CALL  QSL6R (RINT, A, B, F, E, ALFA, BETA, XA, E1)

Результаты:

      RINT  =  29.698490608
      XA    =  0.5
      E1    =  2.3373*10-5