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

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

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

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

1 ответ

Решение

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

Другие вопросы по тегам