Добрый день.
У меня есть следующая задача, которую я пытаюсь решить уже несколько дней:
Существует пространство

.
На этом пространстве имеется функция плотности вероятности -

-мерное нормальное распределение

, где

- матожидание, а

- матрица ковариации распределения.
Все компоненты вектора

лежат в пределах от 0 до 1.
Число измерений

может равняться десяткам или нескольким сотням.
Данное распределение модифицированно следующим образом:
1) Распределение домножено на каждый компонент вектора

в некоторой натуральной степени, и разницу единицы и этого компонента, тоже в какой-то натуральной степени.
2) В любых точках, хотя бы одна координата которых меньше 0 или больше 1 значение функции равно нулю.
Более наглядно напишу формулой:

- вектор, для которого вычисляется значение функции плотности вероятности.

- модифицированное распределение

- компоненты вектора

.

- степени компонентов

.

- степени разниц 1 и компонентов

.
Степени могут достигать десятков, и даже сотен.
1)

2)

, если, для какого либо

,

, или

Мне нужно найти математическое ожидание получившейся функции распределения. То есть, решить задачу - чему будет равно матожидание вектора

, если он распределен согласно фукнции плотности вероятности

.
Аналитический подход - взять интергал

. Учитывая, что функция весьма сложная, развести переменные по сомножителям нельзя, и нет интегралов в элементарных функциях - это вряд ли можно считать тривиальной задачей.
Я пытался развести переменные по разным сомножителям, чтобы взять интеграл, но если я ввожу замену переменных, которая делает матрицу ковариации диагональной, то множители полиномной части функции становятся зависимыми от нескольких переменных. Для того, чтобы перемножить все в один полином, и поодиночке взять интегралы вида

(в данном случае,

- не вектор, а обычная вещественная переменная) - нужно астрономически много времени, так как степени могут быть достаточно большие - десятки, или даже сотни. Если у кого-то есть идеи, как взять такой интеграл - я буду очень благодарен.
Но в целом, мне хватит и численного решения этой задачи. Однако, проблемы возникают и тут. Учитывая, что число измерений

может быть достаточно большим, методы вычисления интегралов, вроде метода прямоугольника и его вариаций не подходят.
Остается Монте-Карло. Однако, специфика фукнции

такова, что у нее часто будет один узкий пик, а остальная часть функции будет иметь на десятки порядков меньшее значение. Для того, чтобы в этот пик попало много значений (чтобы точность была удовлетворительной (мне нужна точность порядка 0.1%)), мне придется моделировать гигантское число значений. Это весьма нежелательно вычислительно.
Возможно, я как-то смогу ускорить выполнение Монте-Карло, если буду знать, где находится пик. Возможно, следует в его окрестность провести более тщательную симуляцию. Пока я остановился на этом, но вариант далек от идеального. Так что, был бы рад услышать советы и по более эффективному численному решению этой задачи.