Текст подпрограммы и версий ( Фортран )
qsmkr.zip 
Тексты тестовых примеров ( Фортран )
tqsmkr.zip 
Текст подпрограммы и версий ( Си )
qsmkr_c.zip 
Тексты тестовых примеров ( Си )
tqsmkr_c.zip 
Текст подпрограммы и версий ( Паскаль )
qsmkr_p.zip 
Тексты тестовых примеров ( Паскаль )
tqsmkr_p.zip 

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

Назначение

Вычисление определенного N - кратного (1 ≤ N ≤ 20) интеграла по прямоугольному параллелепипеду методом Монте - Карло с заданной точностью.

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

Подпрограмма QSMKR позволяет вычислить N - кратный интеграл по N - мерному прямоугольному параллелепипеду ∏:  Ai ≤ Xi ≤ Bi,  i = 1, 2, ..., N , с погрешностью

     Е ( 1 + |  ∫  f (x) dx | ) ,
                   

где величина E задается пользователем. Использован метод Монте - Карло [1]. Погрешность вычислений оценивается с вероятностью  0.997.

1. Н.С.Бахвалов. Численные методы, "Hаука", M., 1975.

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

    SUBROUTINE  QSMKR (RINT, N, A, B, F, E) 

Параметры

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

Версии: нет

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

GSU1R - генерация массива псевдослучайных чисел, pавномеpно распределенных в интервале (0, 1).

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

  Порядок оценки скорости сходимости метода Монте - Карло есть  о (1/k), где k - число точек, в которых вычисляется подинтегральная функция. Kонстанта, входящая в эту оценку, сильно pастет с увеличением кратности интеграла. Поэтому не рекомендуется задавать высокую точность вычислений, т.к. это требует больших затрат машинного времени.

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

      EXTERNAL  F
      DIMENSION  A(3), B(3)
      N = 3
      A(1) = -1.
      B(1) = 2.
      A(2) = -1.
      B(2) = 2.
      A(3) = -1.
      B(3) = 2.
      E = 0.54
      CALL  QSMKR (RINT, N, A, B, F, E)

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

Результат:   RINT  =  3.6834712721