Текст подпрограммы и версий ( Фортран )
qsh4r.zip  qsh4d.zip 
Тексты тестовых примеров ( Фортран )
tqsh4r.zip  tqsh4d.zip 
Текст подпрограммы и версий ( Си )
qsh4r_c.zip  qsh4d_c.zip 
Тексты тестовых примеров ( Си )
tqsh4r_c.zip  tqsh4d_c.zip 
Текст подпрограммы и версий ( Паскаль )
qsh4r_p.zip  qsh4e_p.zip 
Тексты тестовых примеров ( Паскаль )
tqsh4r_p.zip  tqsh4e_p.zip 

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

Назначение

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

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

QSH4R вычисляет четырехкратный интеграл по прямоугольному параллелепипеду с погрешностью

                    B
     Е ( 1 + |  ∫  f (x) dx | ) ,   по сеткам Холтона. 
                  A 

E - меpа погрешности вычисления интеграла, задаваемая пользователем.

Интеграл считается вычисленным, если разность двух приближенных значений интеграла по N точкам и по 2N точкам меньше, чем  E(1 + J), где J - значение интеграла по 2N точкам.

И.М. Соболь. Многомерные квадратурные формулы и функции Xааpа, "Hаука", M.: 1969.

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

    SUBROUTINE  QSH4R (RINT, A, B, F, E, IERR) 

Параметры

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

Версии

QSH4D - вычисление с удвоенной точностью определенного четырехкратного интеграла по прямоугольному параллелепипеду с заданной точностью.

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

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

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

 

Может случиться, что пользователь задал слишком высокую точность вычислений интеграла, которая не достигается при числе точек N = 2*109. Тогда подпрограммы UTQS10, UTQS12 выдадут диагностическое сообщение "заданная точность не может быть достигнута".

  В подпрограмме QSH4D параметры RINT, A, B, F, E имеют тип DOUBLE PRECISION.

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

      REAL  FUNCTION  F(X)
      DIMENSION  X(4)
      F = X(1)*X(2)*X(3)*X(4)
      RETURN
      END

      EXTERNAL  F
      DIMENSION  A(4), B(4)
      A(1) = -1.
      B(1) = 2.
      A(2) = -1.
      B(2) = 2.
      A(3) = -1.
      B(3) = 2.
      A(4) = -1.
      B(4) = 2. 
      CALL  QSH4R (RINT, A, B, F, 0.005, IERR)

Результаты:   RINT  =  5.0163806920 ,   IERR  =  0.