Я экспериментировал с вычислением многомерных интегралов с помощью интервальной арифметики. Суть его заключается в следующем.
Пусть переменные, которые участвуют в интегрировании, имеют конечные интервалы. Даны подынтегральная функция и множество ограничений, определяющих область интегрирования.
1. С помощью интервального анализа можно оценить границы интеграла (см. ниже). 2. Если точность достаточна, то в качестве результата можно взять среднее интервала. 3. Если нет, то нужно произвести «ветвление», т.е. поделив какую-нибудь переменную (пополам), и получить два интеграла. Вычислив границы каждого из этих интегралов, уточнить границы исходного интеграла. 4. Выбрать интеграл, имеющий наихудший интервал оценки и перейти к п. 2
Вычисление оценки интеграла можно сделать следующим образом a. С помощью интервальных вычислений находим верхнюю и нижнюю границу подынтегрального выражения, а также истинность ограничений. b. Если гарантировано нарушено хотя бы одно ограничение, то интеграл равен нулю c. Если все ограничения удовлетворены, то значение многомерного интеграла определяется границами произведения объема гиперкуба интегрирования на интервал подынтегральной функции d. В противном случае, границы интеграла получаются объединением интервалов случаев b и c.
Это довольно универсальный алгоритм, при чем дающий гарантированную точность («настоящее» значение всегда внутри интервала оценки!), определяемую точностью представления чисел и точностью операций. Не требуется страданий по переходу от многомерного интеграла к многократному и прочим непотребным действиям. Однако эффективная реализация высокотехнологична и требует огромных трудозатрат. К сожалению, наши псевдоматематики вряд ли способны на такое. Но побаловаться можно – см. библиотеку PROFIL/BIAS
|