FUNINT                   Библиотека "JINRLIB"                    

    Автор: Ю.Ю.Лобанов                                               Вы
    Язык: Фортран                                                    
                                                                     посетитель.

                   ВЫЧИСЛЕНИЕ ФУНКЦИОНАЛЬНЫХ ИНТЕГРАЛОВ
                      ОТ ВЕЩЕСТВЕННЫХ ФУНКЦИОНАЛОВ 
                   ИНТЕГРАЛЬНО-ЭКСПОНЕНЦИАЛЬНОГО ВИДА

    Программа FUNINT предназначена для приближенного вычисления функциональных 
    (континуальных) интегралов в задачах физики и математики [1]. В ней 
    реализован подход к функциональным интегралам и методам их вычисления на 
    основе определения интеграла Лебега в абстрактных метрических пространствах,
    развитый в [1].

    В отличие от стохастических методов (Монте-Карло), в данной программе 
    используются детерминированные алгоритмы для вычисления функциональных
    интегралов, разработанные в [2]. Это дает возможность получения результатов
    с гарантированной, а не вероятностной оценкой погрешности и обеспечивает
    более высокую скорость сходимости приближений к точному значению интеграла.

    В программе FUNINT осуществляется вычисление функционального интеграла 
                                  ,
    где интегрирование производится по пространству  
    непрерывных на отрезке [0,1] функций с нулевыми значениями на концах отрезка;
     - условная мера Винера на пространстве ,  - вещественный 
    функционал вида
                     

     - вещественный параметр,  и  - вещественные функции, задаваемые
    пользователем. 

    Основой для вычисления являются приближенные формулы, описанные в [2].

    Данные формулы позволяют находить функциональный интеграл путем вычисления 
    (n+m) - кратного риманова интеграла, где n и m - произвольные натуральные числа.
    Формулы являются точными на классе функциональных многочленов степени 2m+1,
    т.е. для функционалов  из этого класса остаточный член  равен нулю.
    Для остальных интегрируемых функционалов  погрешность определяется теоремами,
    доказанными в [1]. Как следует из оценки остаточного члена (см. [1]), скорость
    сходимости приближений, получаемых по данным формулам к точному значению 
    интеграла при , m фиксировано, имеет порядок .

    В программе FUNINT реализован алгоритм, соответствующий m = 1, т.е. остаточный 
    член равен нулю для функциональных многочленов степени не выше 3, а в 
    остальных случаях  скорость сходимости имеет порядок .
    Для достижения точности порядка 0.1% обычно бывает достаточно выбрать 
    значения параметра n порядка 10 или меньше. В программе FUNINT 
    предусмотрено вычисление  n-кратного интеграла по методу Коробова [3] 
    с использованием библиотечной подпрограммы MIKOR, допускающей значение
    кратности k20. Для интегрирования по переменной t в выражении
    для  используется библиотечная подпрограмма DSIMPS интегрирования
    по Симпсону с двойной точностью.

    Литература:
    -----------
    1. А.Д.Егоров, Е.П.Жидков, Ю.Ю.Лобанов. Введение в теорию и приложения
       функционального интегрирования. М: Физматлит, 2006.
    2. Yu.Yu.Lobanov. Deterministic computation of functional integrals.
       Comp.Phys.Comm., 99 (1996) 59-72.
    3. Н.М.Коробов, Теоретико-числовые методы в приближенном анализе. 
       М.: Физматгиз, 1963.

    Структура:
    ----------
       Тип:                          SUBROUTINE
       Имена входа для пользователя: FUNINT
       Внутренние подпрограммы:      FX, FUNC, FUN1, FUN2, RHO 
       Внешние подпрограммы:         DSIMPS(D120),MIKOR(D121)(из библиотеки JINRLIB)
                                     F1, F2 (составляются пользователем)

    Обращение:
    ----------
    CALL FUNINT(K,X,AX,BX,XM,EPS,R), где:
       K       - суммарная кратность риманова интеграла (K=N+1);
       X,AX,BX - рабочие массивы размерности K (должны быть описаны оператором
                 DIMENSION в основной программе);
       XM      - значение предела интегрирования по переменной u (может быть 
                 выбрано порядка 4-10 вследствие наличия фактора exp(-u**2)
                 в зависимости от вида функционала) (см.подробное описание);
       EPS     - требуемая максимальная относительная погрешность нахождения 
                 функционального интеграла;
       R       - результат вычисления.

    В основной программе перед обращением к FUNINT должны быть также определены 
    следующие переменные:
       B   - значение вещественного параметра  в выражении для функционала ;
       M=1 - значение параметра m;
       DX  - массив размерности 2 (должен быть описаны оператором DIMENSION): 
       DX(1) и DX(2) - соответственно начальное и максимальное конечное число 
             точек многомерной сетки интегрирования для подпрограммы MIKOR;
       L   - порядок периодизации для подпрограммы MIKOR, 0L10
             (рекомендованные значения L=1,2,3);
       H   - относительная ширина пограничного слоя для подпрограммы MIKOR 
             (рекомендуется 0.1H10.0).

    Данные переменные должны быть занесены в COMMON-блок PAR:
       COMMON/PAR/B,DX(2),L,M,H

    Если задать DX(1),DX(2),L,M,H  0, то выбор этих величин будет осуществлен
    в программе автоматически.
 
    Пользователем должны быть также написаны подпрограммы-функции FUNCTION F1(X)
    и FUNCTION F2(X) в соответствии с видом интегрируемого функционала .

    Примечания:
    -----------
    1. При необходимости вычисления функционального интеграла по пространству
        со значениями , он может быть преобразован к
       интегралу по пространству  с помощью замены 
       переменных, описанной в [1].
    2. Точность результата и эффективность вычислений во многом зависит от выбора
       параметров интегрирования для подпрограммы MIKOR. В случае неудачного 
       выбора этих параметров и невозможности достижения требуемой точности 
       выдается соответствующая диагностика.

    Архив программы с подробным описанием и исходными текстами.
    Работа выполнена в Лаборатории информационных технологий ОИЯИ.