Образец многомерного нормального распределения с использованием Boost

Я могу взять образец из нормального распределения, используя Boost в С++.

У меня сейчас простой вопрос:

Как я могу выбрать из многомерного нормального распределения (n> 2), используя функции Boost (нормальное распределение, несколько массивов...)?


person khelkhel    schedule 04.04.2012    source источник
comment
Я никогда не делал подобных вещей, но это может помощь...   -  person niktehpui    schedule 04.04.2012
comment
в чем именно проблема?: Вы можете просто сгенерировать нормальное распределение для каждой оси с заданными средними значениями и вариантами. (Если они не коррелированы)   -  person unsym    schedule 04.04.2012
comment
а если они взаимосвязаны???   -  person khelkhel    schedule 04.04.2012


Ответы (1)


Я думаю, что вы не сможете сделать это без небольшого количества линейной алгебры. Фактически, если у вас есть ковариационная матрица C, вы можете создать верхнюю треугольную матрицу L, используя разложение Холецкого такое, что C = L*L^T. Эту матрицу L теперь можно использовать для создания выборки из распределения с ковариацией C путем применения L к вектору некоррелированного шума.

person Jakob    schedule 12.05.2012