ОБЪЕДИНЕННЫЙ   ИНСТИТУТ   ЯДЕРНЫХ   ИССЛЕДОВАНИЙ
lit БИБЛИОТЕКА   ПРОГРАММ   JINRLIB

FUNINT - вычисление функциональных интегралов от вещественных функционалов интегрально-экспоненциального вида


Автор: Ю.Ю.Лобанов
eng
Вы
counter
посетитель.

Язык: Фортран


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

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

В программе FUNINT осуществляется вычисление функционального интеграла

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

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

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


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


В программе FUNINT реализован алгоритм, соответствующий m = 1, т.е. остаточный член равен нулю для функциональных многочленов степени не выше 3, а в остальных случаях скорость сходимости имеет порядок f15.
Для достижения точности порядка 0.1% обычно бывает достаточно выбрать значения параметра n порядка 10 или меньше. В программе FUNINT предусмотрено вычисление n-кратного интеграла по методу Коробова [3] с использованием библиотечной подпрограммы MIKOR, допускающей значение кратности kf1320. Для интегрирования по переменной t в выражении для f9 используется библиотечная подпрограмма 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 - значение вещественного параметра f6 в выражении для функционала f9;
M=1 - значение параметра m;
DX - массив размерности 2 (должен быть описаны оператором DIMENSION):
DX(1) и DX(2) - соответственно начальное и максимальное конечное число точек многомерной сетки интегрирования для подпрограммы MIKOR;
L - порядок периодизации для подпрограммы MIKOR, 0f13Lf1310 (рекомендованные значения L=1,2,3);
H - относительная ширина пограничного слоя для подпрограммы MIKOR (рекомендуется 0.1f13Hf1310.0).

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

Если задать DX(1),DX(2),L,M,H f13 0, то выбор этих величин будет осуществлен в программе автоматически.

Пользователем должны быть также написаны подпрограммы-функции FUNCTION F1(X) и FUNCTION F2(X) в соответствии с видом интегрируемого функционала f9.

Примечания:

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

Архив программы с подробным описанием и исходными текстами.

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




home up e-mail